Home › Fóruns › Fórum Rastreamento de Objetos com Python e OpenCV › Resultado final do rastreamento
Marcado: Rastreamento de mais objetos 3
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 4 anos, 7 meses atrás por
Dalton Vargas.
Visualizando 2 posts - 1 até 2 (de 2 do total)
- AutorPosts
- 16 de julho de 2020 às 23:14 #18456
Como eu posso fazer para salvar o resultado do video junto com o bouding box ??
17 de julho de 2020 às 11:16 #18458Olá 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
- resultado = “resultados/optical flow sparse.mp4”
- 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()
- gravarVideo = cv2.VideoWriter(resultado, cv2.VideoWriter_fourcc(‘m’,’p’,’4′,’v’), 60, (pri_frame.shape[1], pri_frame.shape[0]))
- 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
- existe a classe VideoWriter no opencv, trabalhamos com 4 parâmetros;
- AutorPosts
Visualizando 2 posts - 1 até 2 (de 2 do total)
- Você deve fazer login para responder a este tópico.