Como faço para criar uma imagem OpenCV a partir de uma imagem PIL?

Eu quero fazer algum processamento de imagem com OpenCV (em Python), mas eu tenho que começar com um PILImage objeto, então eu não posso usar ocvLoadImage() chamar, desde que leva um nome de arquivo.

Esta receita (adaptada dehttp://opencv.willowgarage.com/wiki/PythonInterface) não funciona porquecvSetData reclamaargument 2 of type 'void *' . Alguma ideia?

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)) 

Eu acho que o último argumento para ocvSetData está errado também, mas não tenho certeza do que deveria ser.

questionAnswers(4)

yourAnswerToTheQuestion