如何在OpenCV for Python中使用OpenCL?

时间:2018-06-18 00:02:33

标签: 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, 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_cascade.detectMultiScale()。 有人可以建议我如何使用PythonOpenCV的OpenCL指令来实现它吗?

我尝试使用OpenCL for OpenCV:https://opencv.org/platforms/opencl.htmlhttps://docs.opencv.org/2.4/modules/ocl/doc/introduction.html,但Python集成的示例非常有限。

0 个答案:

没有答案