Capturar imagen como matriz con Python OpenCV

He visto en la muestra cómo mostrar una imagen de la cámara web, pero ¿cómo puedo capturar la imagen como una matriz?

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

img.tostring () me da personajes extraños. Gracias en adv.

Creo que esto es lo que estás buscando:

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

de todos modos, debe consultar el libro de cocina opencv python para utilizarlo con los paquetes PIL y NUMPY.

Asegúrese de obtener una licencia con soporte numpy incluido. La secuencia que me funciona es capturar una IPL, convertir a cvMat, convertir a numpy:

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

Tenga en cuenta que la representación del color es diferente de lo que supone Pylab. ¡Pero viene la documentación de opencv para su ayuda!

Creo que su problema podría ser la forma en que está imprimiendo / mostrando el contenido de la matriz.

Sin embargo, esta publicación de blog muestra cómo capturar fotogtwigs desde una cámara web en linux usando python.

De acuerdo con los documentos, QueryFrame devuelve una IplImage . IplImage puede tratarse como una matriz arbitraria . Parece que querrá usar el conjunto de funciones “Obtener” para acceder a los elementos de la matriz.