Самый используемый модуль Python для обработки видео?
Мне нужно:
- Открыть видеофайл
- Итерировать по кадрам файла как изображения
- Проведите некоторый анализ в этом кадре изображения видео.
- Нарисуйте это изображение видео
- Создайте новое видео с этими изменениями
OpenCV не работает для моей веб-камеры, но работает python-gst. Возможно ли это с помощью python-gst?
Спасибо!
Ответы
Ответ 1
Вы имеете в виду, что opencv не может подключиться к вашей веб-камере или не может читать записанные им видеофайлы?
Вы пытались сохранить видео в другом формате?
OpenCV, вероятно, лучший поддерживаемый инструмент обработки изображений python
Ответ 2
Я сам это переживаю. Это только пара строк в MATLAB с помощью mmreader, но я уже взорвал два рабочих дня, пытаясь понять, как вытащить фреймы из видеофайла в numpy. Если у вас достаточно места на диске, и оно не обязательно должно быть в режиме реального времени, вы можете использовать:
mplayer -noconsolecontrols -vo png blah.mov
а затем потяните файлы .png в numpy, используя:
pylab.imread('blah0000001.png')
Я знаю, что это неполное, но оно все равно может помочь вам. Удачи!
Ответ 3
Я использовал этот script для преобразования фильма в массив 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)
обратите внимание, что в зависимости от ваших соглашений вы не захотите перевернуть изображение. вы можете загрузить его, используя:
load('walking.npy')
Ответ 4
Просто создайте обертку C/С++ для своей веб-камеры, а затем используйте SWIG или SIP для доступа к этим функциям из Python. Затем используйте OpenCV в Python, который лучше всего использует библиотеку видения с открытым исходным кодом в дикой природе.
Если вы беспокоитесь о производительности и работаете под Linux, вы можете скачать бесплатные версии Intel Performance Primitives (IPP), которые можно было загрузить во время выполнения с нулевым усилием от OpenCV. Для некоторых алгоритмов вы можете получить 200% -ный прирост производительности, а также автоматическую многоядерную поддержку для большинства трудоемких функций.
Ответ 5
Проверьте видео поток. Это новая библиотека для удобной компоновки конвейеров видеоанализа в Python. Он имеет автономные компоненты для чтения, обработки, аннотирования и записи в видеофайлы.