Захват изображения в виде массива с помощью Python OpenCV - PullRequest
3 голосов
/ 20 августа 2010

Я видел из примера, как отобразить изображение с веб-камеры, но как получить изображение, записанное в виде массива?

import cv

capture = cv.CaptureFromCAM(0)
img = cv.QueryFrame(capture)

img.tostring () дает мне странные символы.Спасибо в adv.

Ответы [ 4 ]

3 голосов
/ 20 августа 2010

Я думаю, это то, что вы ищете:

img=cv.LoadImage("asd.png")
mat=cv.GetMat(img)
mat[3,1]
(83.0, 88.0, 89.0)

в любом случае, вы должны проверить opencv python поваренная книга для использования с пакетами PIL и NUMPY.

2 голосов
/ 26 января 2011

Обязательно получите opencv с поддержкой numpy. Последовательность, которая работает для меня: захват IPL, преобразование в cvMat, преобразование в numpy:

import cv, numpy, pylab
capture = cv.CaptureFromCAM(0)
img = cv.QueryFrame(capture)
mat=cv.GetMat(img)
a = numpy.asarray(mat)
pylab.imshow(a)

Обратите внимание, что представление цвета отличается от того, что предполагает pylab. Но вам в помощь приходит документация opencv

1 голос
/ 20 августа 2010

Я считаю, что ваша проблема может заключаться в том, как вы печатаете / отображаете содержимое массива.

Тем не менее, в этом блоге показано, как захватывать кадры с веб-камеры на Linux с использованием Python.

0 голосов
/ 20 августа 2010

Согласно документам, QueryFrame возвращает IplImage . IplImage можно рассматривать как произвольный массив . Похоже, вы захотите использовать набор функций «Get» для доступа к элементам массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...