Resultado final do rastreamento

Home Fóruns Fórum Rastreamento de Objetos com Python e OpenCV Resultado final do rastreamento

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #18456
    Jones Granatyr
    Moderador

      Como eu posso fazer para salvar o resultado do video junto com o bouding box ??

      #18458
      Dalton Vargas
      Moderador

        Olá Michael!

        Funciona assim:

        • existe a classe VideoWriter no opencv, trabalhamos com 4 parâmetros;
          • o primeiro parâmetro é uma string com o nome do vídeo de saída, ‘resultado.avi’ por exemplo;
          • o segundo parâmetro é o cv2.VideoWriter_fourcc, onde especificamos o codec para compactar os quadros do vídeo: (‘P’, ‘I’, ‘M’, ‘1’) é um codec MPEG-1, (‘M’, ‘J’, ‘P’, ‘G ‘) é um codec motion-jpeg, etc. Neste link tem a lista de codecs que você pode usar: http://www.fourcc.org/codecs.php
          • o terceiro parâmetro é a taxa de quadros do fluxo de vídeo criado (FPS);
          • e o quarto parâmetro é a resolução do vídeo. Aqui pegamos as dimensões do vídeo de entrada, armazenamos em duas variáveis para usar neste parâmetro;

        No código fica assim:

        • crie uma variável para armazenar o caminho onde o vídeo será armazenado e dê um nome para este vídeo. Este é o primeiro parâmetro, conforme descrito acima:
          • resultado = “resultados/optical flow sparse.mp4”
            • resultados: é o nome da pasta onde vai salvar o vídeo
            • optical flow sparse.mp4: é o nome do vídeo
        • crie outra variável para armazenar a classe cv2.VideoWriter, especificando os quatro parâmetros:
          • gravarVideo = cv2.VideoWriter(resultado, cv2.VideoWriter_fourcc(‘m’,’p’,’4′,’v’), 60, (pri_frame.shape[1], pri_frame.shape[0]))
            • resultado: é a variável que criamos no tópico anterior
            • cv2.VideoWriter_fourcc(‘m’,’p’,’4′,’v’): codec para compactar os quadros do vídeo
            • 60: é o FPS
            • pri_frame.shape[1], pri_frame.shape[0]: são as dimensões do vídeo de entrada. Exemplo: 640×480
              • pri_frame é o primeiro frame do vídeo, desta parte do código: ret, pri_frame = cap.read()
        • para gravar o vídeo, <span style=”text-decoration: underline;”>dentro da estrutura de repetição while, na última linha de código desta estrutura</span>, insira a variável gravarVídeo.write(frame) passando como parâmetro o vídeo de resultado, com bouding box.
        • e por fim, gravarVideo.release() fora do while, para fechar o arquivo.

        Espero ter ajudado, fico a disposição

         

        AttE

        Dalton

         

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.