Comment créer une image OpenCV à partir d'une image PIL?

Je veux faire du traitement d'image avec OpenCV (en Python), mais j'ai commencer avec un PIL Image objet, donc je ne peux pas utiliser le cvLoadImage() appel, car celle-ci prend un nom de fichier.

Cette recette (adapté de http://opencv.willowgarage.com/wiki/PythonInterface) ne fonctionne pas car cvSetData se plaint argument 2 of type 'void *' . Des idées?

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

Je pense que le dernier argument de la cvSetData est mal aussi, mais je ne suis pas sûr de ce qu'il devrait être.

source d'informationauteur Arkady