Подтвердить что ты не робот

Самый используемый модуль Python для обработки видео?

Мне нужно:

  • Открыть видеофайл
  • Итерировать по кадрам файла как изображения
  • Проведите некоторый анализ в этом кадре изображения видео.
  • Нарисуйте это изображение видео
  • Создайте новое видео с этими изменениями

OpenCV не работает для моей веб-камеры, но работает python-gst. Возможно ли это с помощью python-gst?

Спасибо!

4b9b3361

Ответ 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. Он имеет автономные компоненты для чтения, обработки, аннотирования и записи в видеофайлы.