Jak utworzyć obraz OpenCV z obrazu PIL?

Chcę wykonać przetwarzanie obrazu za pomocą OpenCV (w Pythonie), ale muszę zacząć od PILImage obiekt, więc nie mogę użyćcvLoadImage() call, ponieważ pobiera nazwę pliku.

Ten przepis (dostosowany zhttp://opencv.willowgarage.com/wiki/PythonInterface) nie działa, ponieważcvSetData skarży sięargument 2 of type 'void *' . Jakieś pomysły?

from opencv.cv import *
from PIL import Image

pi = Image.open('foo.png')                       # PIL image
ci = cvCreateImage(pi.size, IPL_DEPTH_8U, 1)     # OpenCV image
data = pi.tostring()
cvSetData(ci, data, len(data)) 

Myślę, że ostatni argument docvSetData jest też źle, ale nie jestem pewien, co to powinno być.

questionAnswers(4)

yourAnswerToTheQuestion