Salvar vídeo operado de uma webcam usando OpenCV
OpenCV é uma vasta biblioteca que ajuda no fornecimento de várias funções para operações de imagem e vídeo. Com o OpenCV, podemos realizar operações no vídeo de entrada. O OpenCV também nos permite salvar o vídeo operado para uso posterior. Para salvar imagens, usamos cv2.imwrite() que salva a imagem em um local de arquivo especificado. Mas, para salvar um vídeo gravado, criamos um objeto Video Writer .
Em primeiro lugar, especificamos a variável fourcc . FourCC é um código de 4 bytes usado para especificar o codec de vídeo. A lista de códigos pode ser obtida em Video Codecs da FourCC . Os codecs para Windows são DIVX e para OSX são avc1, h263. O código FourCC é passado como cv2.VideoWriter_fourcc (* 'MJPG') para MJPG e cv2.VideoWriter_fourcc (* 'XVID') para DIVX.
Em seguida, a função cv2.VideoWriter() é usada.
cv2.VideoWriter (nome do arquivo, fourcc, fps, frameSize)
Os parâmetros são:
- nome do arquivo: especifica o nome do arquivo de vídeo de saída.
- fourcc: (para gravação) Definindo o codec
- fps: taxa de quadros definida do fluxo de vídeo de saída
- frameSize: tamanho dos frames do vídeo
import
numpy as np
import
cv2
cap
=
cv2.VideoCapture(
0
)
fourcc
=
cv2.VideoWriter_fourcc(
*
'XVID'
)
out
=
cv2.VideoWriter(
'output.avi'
, fourcc,
20.0
, (
640
,
480
))
while
(
True
):
ret, frame
=
cap.read()
hsv
=
cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
out.write(hsv)
cv2.imshow(
'Original'
, frame)
cv2.imshow(
'frame'
, hsv)
if
cv2.waitKey(
1
) &
0xFF
=
=
ord
(
'a'
):
break
cap.release()
out.release()
cv2.destroyAllWindows()
Saída:
A tela de saída mostra duas janelas. A janela chamada 'Original' mostra os quadros de entrada, enquanto a janela 'quadro' mostra a sequência de vídeo operada.
Além disso, um vídeo é gravado e salvo com o nome 'saída' no mesmo local do arquivo com taxa de quadros e tamanho de quadros predefinidos.
Geralmente é do formato .avi. O vídeo salvo é assim: Vídeo de saída
O vídeo de entrada pode ser operado em outros espaços de cores também, como em tons de cinza
import
numpy as np
import
cv2
cap
=
cv2.VideoCapture(
0
)
fourcc
=
cv2.VideoWriter_fourcc(
*
'XVID'
)
out
=
cv2.VideoWriter(
'output.avi'
, fourcc,
20.0
, (
640
,
480
))
while
(
True
):
ret, frame
=
cap.read()
gray
=
cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
out.write(gray)
cv2.imshow(
'Original'
, frame)
cv2.imshow(
'frame'
, gray)
if
cv2.waitKey(
1
) &
0xFF
=
=
ord
(
'a'
):
break
cap.release()
cv2.destroyAllWindows()
Um arquivo de vídeo deste vídeo operado é salvo no mesmo local de arquivo que vimos acima.
Este método pode nos ajudar a criar nosso próprio conjunto de dados para dados de treinamento em projetos / modelos, para gravar de nossa webcam e fazer as operações necessárias e também criar o vídeo em diferentes espaços de cores.
Consulte este link para visualizar o conteúdo em diferentes espaços de cores:
https://acervolima.com/python--visualizando-imagem-em-diferentes-espacos-de-cores/
Referências:
- https://docs.opencv.org/3.4/dd/d9e/classcv_1_1VideoWriter.html
- https://docs.opencv.org/3.1.0/dd/d43/tutorial_py_video_display.html
- https://en.wikipedia.org/wiki/FourCC
- https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.html
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva