Responder a: Resultado final do rastreamento

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

#18458
Dalton Vargas
Instrutor

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