OpenCV es una amplia biblioteca que ayuda a proporcionar varias funciones para operaciones de imagen y video. Con OpenCV, podemos realizar operaciones en el video de entrada. OpenCV también nos permite guardar ese video operado para su uso posterior. Para guardar imágenes, usamos cv2.imwrite() que guarda la imagen en una ubicación de archivo específica. Pero, para guardar un video grabado, creamos un objeto Video Writer .
En primer lugar, especificamos la variable fourcc . FourCC es un código de 4 bytes que se usa para especificar el códec de video. La lista de códigos se puede obtener en Video Codecs by FourCC . Los códecs para Windows son DIVX y para OSX son avc1, h263. El código FourCC se pasa como cv2.VideoWriter_fourcc(*’MJPG’) para MJPG y cv2.VideoWriter_fourcc(*’XVID’) para DIVX.
Luego, se usa la función cv2.VideoWriter() .
cv2.VideoWriter( filename, fourcc, fps, frameSize )
Los parámetros son:
- nombre de archivo: especifica el nombre del archivo de vídeo de salida.
- fourcc: (para grabar) Definición del códec
- fps: velocidad de fotogramas definida del flujo de vídeo de salida
- frameSize: Tamaño de los fotogramas de vídeo
# Python program to illustrate # saving an operated video # organize imports import numpy as np import cv2 # This will return video from the first webcam on your computer. cap = cv2.VideoCapture(0) # Define the codec and create VideoWriter object fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480)) # loop runs if capturing has been initialized. while(True): # reads frames from a camera # ret checks return at each frame ret, frame = cap.read() # Converts to HSV color space, OCV reads colors as BGR # frame is converted to hsv hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # output the frame out.write(hsv) # The original input frame is shown in the window cv2.imshow('Original', frame) # The window showing the operated video stream cv2.imshow('frame', hsv) # Wait for 'a' key to stop the program if cv2.waitKey(1) & 0xFF == ord('a'): break # Close the window / Release webcam cap.release() # After we release our webcam, we also release the output out.release() # De-allocate any associated memory usage cv2.destroyAllWindows()
Salida:
La pantalla de salida muestra dos ventanas. La ventana llamada ‘Original’ muestra cuadros de entrada, mientras que la ventana ‘cuadro’ muestra la secuencia de video operada. Además, se graba y guarda un video con el nombre ‘salida’ en la misma ubicación del archivo con una velocidad de cuadro y un tamaño de cuadro predefinidos. Generalmente tiene el formato .avi. El video guardado es así: Video de salida
El video de entrada también se puede operar en otros espacios de color, como en escala de grises
# Python program to illustrate # saving an operated video # organize imports import numpy as np import cv2 # This will return video from the first webcam on your computer. cap = cv2.VideoCapture(0) # Define the codec and create VideoWriter object fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480)) # loop runs if capturing has been initialized. while(True): # reads frames from a camera # ret checks return at each frame ret, frame = cap.read() # Converts to grayscale space, OCV reads colors as BGR # frame is converted to gray gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # output the frame out.write(gray) # The original input frame is shown in the window cv2.imshow('Original', frame) # The window showing the operated video stream cv2.imshow('frame', gray) # Wait for 'a' key to stop the program if cv2.waitKey(1) & 0xFF == ord('a'): break # Close the window / Release webcam cap.release() # After we release our webcam, we also release the out-out.release() # De-allocate any associated memory usage cv2.destroyAllWindows()
Un archivo de video de este video operado se guarda en la misma ubicación de archivo que vimos anteriormente.
Este método puede ayudarnos a crear nuestro propio conjunto de datos para entrenar datos en proyectos/modelos, grabar desde nuestra cámara web y realizar las operaciones necesarias y también crear el video en diferentes espacios de color.
Consulte este enlace para visualizar contenido en diferentes espacios de color:
https://www.geeksforgeeks.org/python-visualizing-image-in- different-color-spaces/
Referencias:
- 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
Publicación traducida automáticamente
Artículo escrito por rishabhsingh1304 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA