Usando opencv, ¿cómo se puede dividir un video en una secuencia de imágenes?
¿Cómo puedo dividirlo para que la salida sea una secuencia de imágenes?openCV: ¿Cómo dividir un video en secuencia de imágenes?
Respuesta
Incluso después de mis ediciones, la cuestión parece más a un "enviar-me-la-codez" demanda que un Stackoverflow típica pregunta mediante el cual el OP proporciona información detallada y demuestra que él o ella ha puesto algunos reales pensado en eso.
Así que solo daré una "media respuesta" ... De todos modos, solo estoy medianamente familiarizado con el módulo de aprendizaje automático de OpenCV y apenas soy consciente del resto de la biblioteca. ;-)
En pocas palabras, el pseudo código debería verse así y la implementación normalmente requeriría los métodos de OpenCV mencionados.
myCapt = cvCreateFileCapture("myInput.avi") // Assuming the feed is from a file.
while (there are frames and we still want them)
cvGrabFrame(myCapt)
myImg = cvRetrieveFrame(myCapt)
// alternatively to cvGrabFrame + cvRetrieveFrame, could use cvQueryFrame()
// save the file (or do something with it...)
cvSaveImage("some_file_name_with_seq_nr", myImage)
cvReleaseCapture(capture)
como se insinuó la necesidades anteriores mucho sintaxis y la lógica de trabajo (por ejemplo. Averiguar cuándo parar, produciendo el nombre del archivo de los cuadros individuales, y por supuesto declarar adecuadamente las variables y utilizando el nivel correcto de indirección w/todos ellos punteros ;-). Por supuesto, algo de esto es más fácil si usa la interfaz de Python.
El Reading and Writing Images and Video OpenCV documentation page proporciona información más detallada acerca de los métodos individuales.
Para mi sorpresa, no pude encontrar una respuesta a esta pregunta en StackoverFlow.
Actualmente estoy usando OpenCV 2.1. Esto podría ser un poco viejo pero funciona como un encanto. El programa lee un archivo de entrada y crear una secuencia de imágenes en la carpeta actual llamado * * frame_xx.jpg
#include <stdio.h>
#include <stdlib.h>
#include "cv.h"
#include "highgui.h"
int main(int argc, char** argv)
{
if (argc < 2)
{
printf("!!! Usage: ./program <filename>\n");
return -1;
}
printf("* Filename: %s\n", argv[1]);
CvCapture *capture = cvCaptureFromAVI(argv[1]);
if(!capture)
{
printf("!!! cvCaptureFromAVI failed (file not found?)\n");
return -1;
}
int fps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
printf("* FPS: %d\n", fps);
IplImage* frame = NULL;
int frame_number = 0;
char key = 0;
while (key != 'q')
{
// get frame
frame = cvQueryFrame(capture);
if (!frame)
{
printf("!!! cvQueryFrame failed: no frame\n");
break;
}
char filename[100];
strcpy(filename, "frame_");
char frame_id[30];
itoa(frame_number, frame_id, 10);
strcat(filename, frame_id);
strcat(filename, ".jpg");
printf("* Saving: %s\n", filename);
if (!cvSaveImage(filename, frame))
{
printf("!!! cvSaveImage failed\n");
break;
}
frame_number++;
// quit when user press 'q'
key = cvWaitKey(1000/fps);
}
// free resources
cvReleaseCapture(&capture);
return 0;
}
- 1. Cómo rotar un video con OpenCV
- 2. Convertir secuencia de imágenes en video con transparencia
- 3. Cargando un video en OpenCV en Python
- 4. ¿Cómo extraer imágenes de un video?
- 5. F #: ¿Cómo dividir una secuencia en una secuencia de secuencias
- 6. Transformación de imágenes en OpenCV
- 7. Agregue un poco de procesamiento de OpenCV a una secuencia de video gstreamer
- 8. OpenCV 2.4 en python - Procesamiento de video
- 9. ¿Cómo escribir un archivo de video con OpenCV?
- 10. Reproducción de video inverso en OpenCV
- 11. Convierta un video en una secuencia de imágenes usando GStreamer (no ffmpeg)
- 12. Grabación de video con OpenCV + Python + Mac
- 13. iOS extrayendo cuadros de video como imágenes
- 14. Secuencia de imagen a calidad de video
- 15. ¿Cómo dividir una secuencia de acuerdo con un predicado?
- 16. ¿Cómo elijo un método de interpolación de imágenes? (Emgu/OpenCV)
- 17. Crear video a partir de secuencia de imágenes comenzando en image_100
- 18. Costura de 2 imágenes en opencv
- 19. Renderizar una cadena de imágenes como un video en javascript
- 20. Obteniendo fotogramas de video .avi usando OpenCV
- 21. Procesamiento de imágenes en CUDA o OpenCV?
- 22. biblioteca de python para dividir video
- 23. Codifica una serie de imágenes en un video
- 24. ¿Cómo comparo dos imágenes de borde (en OpenCV)?
- 25. Crear una secuencia de video (AVI) desde una serie de imágenes
- 26. Hacer un video con opencv y ffmpeg. ¿Cómo encontrar el formato de color correcto?
- 27. FFmpeg: ¿Cómo dividir el video de manera eficiente?
- 28. ¿Cómo dividir una secuencia en dos partes por predicado?
- 29. OpenCV: detectar luces parpadeantes en una alimentación de video
- 30. Reproducir recurso de video incrustado como secuencia
thnx mucho a la interfaz de usuario han OpenCV 2.0.0 puede funcionar esto de código en él – meroz
puede u PLZ me dijo cómo escribir este código y ejecutarlo – meroz
@ mero0o Esa es otra pregunta completamente diferente y depende de la plataforma que esté utilizando. Creo que esta pregunta ya está resuelta. No olvides aceptar mi respuesta. – karlphillip