我正在尝试将此 c 代码(http://nashruddin.com/OpenCV_Eye_Detection)转换为 python 代码,但在 c 风格中,他使用了 cvROI 东西,因为 python-opencv 不支持 ROI 函数,我尝试了 cvGetSubRect
所以这是代码的眼睛检测部分:
eye_region = cvGetSubRect(image,cvRect(face.x,int(face.y + (face.height/4)),face.width,int(face.height/2)))
eyes = cvHaarDetectObjects(eye_region,eyeCascade,memo,1.15,3,0,cvSize(25,15))
for e in eyes:
cvRectangle(image, cvPoint( int(e.x), int(e.y)),
cvPoint(int(e.x + e.width), int(e.y + e.height)),
CV_RGB(0, 255, 0), 1, 8, 0)
return image;
当我运行这段代码时,它会在不相关的地方绘制矩形。心想,eye_region坐标不对,试了一些坐标,还是不行。任何想法 ?
注意:人脸检测方法效果很好,代码与眼睛检测方法相同。
最佳答案
好吧,我终于解决了这个问题,虽然这是一个虚拟问题
改变
cvRectangle(eye_region, cvPoint( int(e.x), int(e.y)),
cvPoint(int(e.x + e.width), int(e.y + e.height)),
CV_RGB(0, 255, 0), 1, 8, 0)
解决了问题
关于opencv - Opencv中的眼睛检测问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2779573/