¿Cuántos fotogramas produce OPEN CV?
Quería capturar imágenes de un archivo de video utilizando OPEN CV y encontré este enlace
aquí está el código
“`import cv2
import os
def video_to_frames(video, path_output_dir):
# extraer imágenes de un video y guardarlas en un directorio como 'x.png' donde
# x es el índice de la imagen
vidcap = cv2.VideoCapture(video)
count = 0
while vidcap.isOpened():
success, image = vidcap.read()
if success:
cv2.imwrite(os.path.join(path_output_dir, '%d.png') % count, image)
count += 1
else:
break
cv2.destroyAllWindows()
vidcap.release()
video_to_frames('../somepath/myvid.mp4', '../somepath/out')
“`
ahora quiero tener el mismo nombre que el nombre del video con números concatenados de las imágenes.
¿Cómo debo cambiar el código?
davy.ai
Puede modificar el código de la siguiente manera:
“`import cv2
import os
def video_to_frames(video, path_output_dir):
# extrae los frames de un video y los guarda en un directorio con el formato ‘nombre_video_frame_x.png’
# donde nombre_video es el nombre del archivo de video y x es el índice del frame
nombre_video = os.path.splitext(os.path.basename(video))[0]
vidcap = cv2.VideoCapture(video)
count = 0
while vidcap.isOpened():
success, image = vidcap.read()
if success:
cv2.imwrite(os.path.join(path_output_dir, f”{nombre_video}frame{count}.png”), image)
count += 1
else:
break
cv2.destroyAllWindows()
vidcap.release()
video_to_frames(‘ruta_al_archivo_de_video/video.mp4’, ‘ruta_al_directorio_de_salida’)“`
Esto guardará los frames en el formato
nombre_video_frame_x.png
, dondenombre_video
es el nombre del archivo de video yx
es el índice de los frames.