Python/OpenCV将cv转换为cv2

Python/OpenCV将cv转换为cv2,python,opencv,python-imaging-library,Python,Opencv,Python Imaging Library,我有一个使用OpenCV编写的python脚本,我正在将所有内容更新到OpenCV2(cv2)。问题是当我使用PIL将图像转换为CVA数组时 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 im

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

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。

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

from PIL import Image
import numpy

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