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
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