眼睛检测在python代码的OpenCV中提供了一些额外的矩形

眼睛检测在python代码的OpenCV中提供了一些额外的矩形,python,opencv,Python,Opencv,嗨, 我在Python3中使用OpenCV。 注:我有三张脸 但在上面的代码中,它检测到一些额外的眼睛为矩形 代码的输出返回额外的眼睛(只有第一个输出正确),如下所示:- 找到2只眼睛! 找到3只眼睛! 找到3只眼睛 任何人都可以检查代码,这里有什么问题吗???尝试使用此功能。 for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) roi_gray = gray[y:y+h, x:x+w]

嗨, 我在Python3中使用OpenCV。 注:我有三张脸

但在上面的代码中,它检测到一些额外的眼睛为矩形

代码的输出返回额外的眼睛(只有第一个输出正确),如下所示:- 找到2只眼睛! 找到3只眼睛! 找到3只眼睛


任何人都可以检查代码,这里有什么问题吗???

尝试使用此功能。

for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
    roi_gray = gray[y:y+h, x:x+w]
    roi_color = img[y:y+h, x:x+w]
    eyes = eye_cascade.detectMultiScale(roi_gray)
    print("Found {0} eyes!".format(len(eyes)))
    for (ex,ey,ew,eh) in eyes:
        cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)


查看detectMultiScale函数的文档,可以增加Minneighbor等变量,这样就不会出现误报。这是一个很好的平衡。你在使用哪种算法?你只能找到任何类型算法的所有眼睛。有很多理由找不到全部。谢谢大家抽出时间。现在它工作了,经过以下更改:eyes=eye\u cascade.detectMultiScale(roi\u color,scaleFactor=1.3,minNeighbors=5)非常感谢。事实上,下面的方法非常适合我。眼睛=眼睛级联。检测多尺度(roi\U颜色,缩放因子=1.3,minNeighbors=5)眼睛=眼睛级联。检测多尺度(roi\U颜色,缩放因子=1.3,minNeighbors=5)
for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
    roi_gray = gray[y:y+h, x:x+w]
    roi_color = img[y:y+h, x:x+w]
    eyes = eye_cascade.detectMultiScale(roi_color, scaleFactor=1.5, minNeighbors=5)
    print("Found {0} eyes!".format(len(eyes)))
    for (ex,ey,ew,eh) in eyes:
        cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)