【发布时间】:2010-12-11 15:45:05
【问题描述】:
我想用 OpenCV(在 Python 中)做一些图像处理,但我必须从 PIL Image 对象开始,所以我不能使用 cvLoadImage() 调用,因为它需要一个文件名。
这个配方(改编自http://opencv.willowgarage.com/wiki/PythonInterface)不起作用,因为cvSetData 抱怨argument 2 of type 'void *'。有什么想法吗?
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))
我认为cvSetData 的最后一个参数也是错误的,但我不确定应该是什么。
【问题讨论】:
-
您在上面输入的代码中包含未定义的名称(cvSetData),因此很难知道您是否真的尝试过。
-
@Jonathan:我没有收到您提到的错误。 cvSetData 确实是 opencv.cv 中定义的有效函数
-
目前回答的状态如何?
标签: python image-processing opencv python-imaging-library