【问题标题】:Python/OpenCV convert cv to cv2Python/OpenCV 将 cv 转换为 cv2
【发布时间】:2014-04-22 04:18:39
【问题描述】:

我有一个使用 OpenCV 编写的 python 脚本,并且正在将所有内容更新到 OpenCV2 (cv2)。问题是当我使用 PIL 将图像转换为 CVarray 时。

pil_im = pil_im.convert('L')
    cv_im = cv.CreateImageHeader(pil_im.size, cv.IPL_DEPTH_8U, 1)
    cv.SetData(cv_im, pil_im.tostring(), pil_im.size[0])

pil_im 稍后在我的代码中找到,

# Crop images
        for img in imgList:
            pil_im = Image.open(img)
            cv_im = pil2cvGrey(pil_im)
            faces = DetectFace(cv_im, faceCascade)
            if faces:
                n = 1
                for face in faces:
                    croppedImage = imgCrop(pil_im, face[0], padding)
                    (fname, ext) = os.path.splitext(img)
                    fname = os.path.basename(fname)
                    croppedImage.save(outputimg + '\\' + fname + ' -c' + ext)
                    n += 1

我知道我的代码可以正常工作,我只是试图通过仅包含 CV2 来使 pyinstaller exe 更小,目前包括 CV 和 CV2。

【问题讨论】:

    标签: python opencv python-imaging-library


    【解决方案1】:

    据我所知 cv2 不再使用 CVarray 类型。这些是 c 数据类型的包装器,而 cv2 现在本机使用 numpy 数据结构。要将 PIL 图像转换为 cv2 数组,请执行

    from PIL import Image
    import numpy
    
    img = Image.open('lena.png')
    array = numpy.array( img )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 2018-04-16
      • 2011-06-28
      • 2019-08-03
      • 1970-01-01
      • 2012-03-10
      • 2016-08-16
      相关资源
      最近更新 更多