【问题标题】:OpenCV 2.0: where is adaptors.py?OpenCV 2.0:adapters.py 在哪里?
【发布时间】:2012-01-24 23:04:05
【问题描述】:
我正在尝试在 Mac 上的 python 中使用 OpenCV 2.0。我需要能够在 OpenCV IPL 格式和 PIL Python Imaging Library 格式之间进行转换。
关于这个问题的最佳答案How do I create an OpenCV image from a PIL image? 建议使用名为“opencv.adaptors”的模块进行转换,但由于我使用的是 OpenCV 2.0,因此我没有名为“opencv”的模块(我有“cv ”代替),并且似乎不存在任何“cv.adaptors”。
【问题讨论】:
标签:
python
opencv
computer-vision
【解决方案1】:
您链接的答案已经过时了。适配器现在消失的原因是不再需要它。 OpenCV 图像的 Python 绑定现在支持数组接口(@987654321@ 和 __array_interface__),所以你应该能够只使用 PIL 中的 Image.fromarray 方法去一种方式,而 cv.fromarray 或 cv.SetData 去另一种方式。
【解决方案2】:
如果您使用的是 OpenCV 2.0,这里有一些来自 OpenCV 2.0 cookbook 的 sn-ps(我有 OpenCV 2.3,所以无法测试,抱歉):
PIL 图像到 OpenCV:
import Image
import cv
pi = Image.open('foo.png') # PIL image
cv_im = cv.CreateImageHeader(pi.size, cv.IPL_DEPTH_8U, 1)
cv.SetData(cv_im, pi.tostring())
OpenCV 转 PIL 图像:
cv_im = cv.CreateImage((320,200), cv.IPL_DEPTH_8U, 1)
pi = Image.fromstring("L", cv.GetSize(cv_im), cv_im.tostring())