如何在OpenCV for Python中使用OpenCL?

如何在OpenCV for Python中使用OpenCL?,python,opencv,opencl,Python,Opencv,Opencl,我创建了一个简单的人脸检测程序,它使用Haar Cascade来检测人脸。我的代码如下: def main(): face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') cap = cv2.VideoCapture(0) while 1: ret, frame = cap.read() img = rescale_frame(frame, pe

我创建了一个简单的人脸检测程序,它使用Haar Cascade来检测人脸。我的代码如下:

def main():
    face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
    cap = cv2.VideoCapture(0)

    while 1:
        ret, frame = cap.read()
        img = rescale_frame(frame, percent=50)

        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        faces = face_cascade.detectMultiScale(gray, 1.3, 5)

        bColor = (255,0,0)
        gColor = (0,255,0)
        rColor = (0,0,255)
        for (x,y,w,h) in faces:
            if (len(faces)%3 == 0):
                cv2.rectangle(img,(x,y),(x+w,y+h),rColor,2)
            if (len(faces)%3 == 1):
                cv2.rectangle(img,(x,y),(x+w,y+h),gColor,2)
            if (len(faces)%3 == 2):
                cv2.rectangle(img,(x,y),(x+w,y+h),bColor,2)

        cv2.imshow('Detected face',img)
        k = cv2.waitKey(30) & 0xff
        if (k == 27) or (k == 13):
            break

    cap.release()
    cv2.destroyAllWindows()
我想在GPU上执行face\u cascade.detectMultiScale()。 有谁能建议我如何使用PythonOpenCV的OpenCL指令来实现这一点


我尝试过使用OpenCL for OpenCV:但是Python集成的示例非常有限。

如果您使用的是OpenCV-3.x,那么架构已经更改为。只需使用
cv::UMat
而不是
cv::Mat
,如果您的平台上的GPU支持OpenCL,那么OpenCV将自动使用它。这些示例不是用于C吗?我正在python上寻找相同的。