Domanda

Ho bisogno di:

  1. Aprire un file video
  2. scorrere i fotogrammi del file come immagini
  3. Fare un po 'di analisi in questa cornice immagine del video
  4. Draw in questa immagine del video
  5. Crea un nuovo video con le modifiche

OpenCV non funziona per la mia webcam, ma python-gst sta lavorando. Questo è possibile utilizzando python-GST?

Grazie!

È stato utile?

Soluzione

Vuoi dire OpenCV non può collegarsi al vostro webcam o non è in grado di leggere file video registrati da esso?

Hai provato il salvataggio del video in un altro formato?

OpenCV è probabilmente il miglior strumento di elaborazione delle immagini python supportato

Altri suggerimenti

sto attraversando questo io stesso. E 'solo un paio di righe in MATLAB utilizzando mmreader, ma ho già saltato due giorni di lavoro a cercare di capire come tirare fotogrammi da un file video in NumPy. Se si dispone di sufficiente spazio su disco, e non deve essere in tempo reale, è possibile utilizzare:

mplayer -noconsolecontrols -vo png blah.mov

e poi tirare le file .png in NumPy utilizzando:

pylab.imread('blah0000001.png')

So che questo è incompleta, ma può comunque aiutare. Buona fortuna!

Ho usato questo script per convertire un filmato in un array + negozio binaria 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)

Si noti che a seconda delle convenzioni, non si può decidere di capovolgere l'immagine. si può quindi caricarlo utilizzando:

load('walking.npy')

Basta costruire un / ++ involucro C C per la tua webcam e quindi utilizzare SWIG o SIP per accedere a queste funzioni da Python. Quindi utilizzare OpenCV in Python che è la migliore libreria source visione artificiale aperto nel selvaggio.

Se ti preoccupi per le prestazioni e si lavora sotto Linux, è possibile scaricare versioni gratuite di Intel Performance Primitives (IPP), che può essere caricato in fase di esecuzione con zero sforzo da OpenCV. Per alcuni algoritmi si potrebbe ottenere una spinta di 200% delle prestazioni, oltre a supporto automatico multicore per la maggior parte delle funzioni che richiede tempo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top