【问题标题】: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 绑定现在支持数组接口(@98​​7654321@ 和 __array_interface__),所以你应该能够只使用 PIL 中的 Image.fromarray 方法去一种方式,而 cv.fromarraycv.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())
      

      【讨论】:

        猜你喜欢
        • 2015-04-21
        • 1970-01-01
        • 1970-01-01
        • 2017-10-24
        • 2012-04-03
        • 1970-01-01
        • 2018-05-08
        • 2016-09-09
        • 1970-01-01
        相关资源
        最近更新 更多