I need to:
OpenCV isn't working for my webcam, but python-gst is working. Is this possible using python-gst?
Thank you!
Do you mean opencv can't connect to your webcam or can't read video files recorded by it?
Have you tried saving the video in an other format?
OpenCV is probably the best supported python image processing tool
I'm going through this myself. It's only a couple of lines in MATLAB using mmreader, but I've already blown two work days trying to figure out how to pull frames from a video file into numpy. If you have enough disk space, and it doesn't have to be real time, you can use:
mplayer -noconsolecontrols -vo png blah.mov
and then pull the .png files into numpy using:
pylab.imread('blah0000001.png')
I know this is incomplete, but it may still help you. Good luck!
I used this script to convert a movie to a numpy array + binary store:
"""
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)
note that depending on your conventions you may not want to flip the image. you may then load it using :
load('walking.npy')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With