2009-09-26 18 views
12

necesito:Módulo Python más utilizado para el procesamiento de video?

  1. Abrir un archivo de vídeo
  2. iterar sobre las tablas del archivo como imágenes
  3. hacer un análisis en este cuadro de la imagen del video
  4. Draw en esta imagen de la
  5. vídeo
  6. Crear un nuevo video con estos cambios

OpenCV no está funcionando para mi webcam, pero Python-GST trabajando. ¿Es esto posible usar python-gst?

¡Gracias!

+1

Aunque esto es antiguo, tengo un código Python que toma un nombre de archivo y devuelve un iterador de imágenes PIL. Puedo publicar el código fuente si alguien está interesado. – carl

Respuesta

6

¿Quiere decir que opencv no puede conectarse a su cámara web o no puede leer los archivos de video grabados por ella?

¿Ha intentado guardar el video en otro formato?

OpenCV es probablemente la herramienta de procesamiento de imagen Pitón mejor apoyado

+1

+1 por recomendar OpenCV. – whatnick

0

Sólo construir un/C++ C envoltorio para su cámara web y luego usar el TRAGO o SIP para acceder a estas funciones desde Python. Luego use OpenCV en Python que es la mejor biblioteca de visión por computadora de código abierto en la naturaleza.

Si te preocupa el rendimiento y trabajas en Linux, puedes descargar versiones gratuitas de Intel Performance Primitives (IPP) que se pueden cargar en tiempo de ejecución sin ningún esfuerzo por parte de OpenCV. Para ciertos algoritmos, puede obtener un aumento del 200% de las interpretaciones, más soporte automático multinúcleo para la mayoría de las funciones que consumen tiempo.

+1

Recuerde que no mucha gente sabe cómo crear wrappers para Python, y la pregunta de OP trata principalmente de una biblioteca preexistente. – skeggse

+0

Q antiguo, pero recomendaría Cython sobre SWIG o SIP. Es * mucho * más fácil de usar, admite C y C++ y tiene una mejor documentación. Probé las 3 herramientas mencionadas más Boost Python y Cython fue la única en la que pude trabajar en un tiempo razonable. – Endophage

3

Estoy pasando por esto yo mismo. Solo hay un par de líneas en MATLAB usando mmreader, pero ya he perdido dos días de trabajo tratando de encontrar la manera de sacar fotogramas de un archivo de video a numpy. Si usted tiene suficiente espacio en disco, y no tiene por qué ser en tiempo real, puede utilizar:

mplayer -noconsolecontrols -vo png blah.mov 

y luego tirar de los archivos .png en numpy usando:

pylab.imread('blah0000001.png') 

Sé que esto está incompleto, pero aún puede ayudarte. ¡Buena suerte!

+0

Te siento.Estoy evaluando si Python sería un buen sustituto de Matlab, y me pareció que faltaba mucho, especialmente con el simple procesamiento de video. –

3

que utiliza este script para convertir una película a una matriz binaria + tienda numpy:

""" 
Takes a MPEG movie and produces a numpy record file with a numpy array. 

""" 
import os 

filename = 'walking' 
if not(os.path.isfile(filename + '.npy')): # do nothing if files exists 
    N_frame = 42 # number of frames we want to store 
    os.system('ffmpeg -i WALK.MOV.qt -f image2 foo-%03d.png') 
    # convert them to numpy 
    from numpy import zeros, save, mean 
    from pylab import imread 

    n_x, n_y, n_rgb = imread('foo-001.png').shape 

    mov = zeros((n_y, n_x, N_frame)) 

    for i_frame in range(N_frame): 
     name = 'foo-%03d.png' % (i_frame +1) 
     mov[:n_y,:n_x,i_frame] = flipud(mean(imread(name), axis=2)).T 

    os.system('rm -f foo-*.png') 
    save(filename + '.npy', mov) 

en cuenta que dependiendo de sus convenciones puede que no desee para voltear la imagen. luego puede cargarlo usando:

load('walking.npy') 
Cuestiones relacionadas