gpt4 book ai didi

python-2.7 - 使用opencv和python进行人脸检测只能检测眼睛区域

转载 作者:行者123 更新时间:2023-12-02 17:44:08 26 4
gpt4 key购买 nike

我通过查看该网站来编写脚本,该脚本运行良好,但在计算机上运行该脚本时,唯一的问题是只能检测到眼睛区域。
https://pythonprogramming.net/haar-cascade-face-eye-detection-python-opencv-tutorial/

以下是我根据该网站编写的脚本。

import numpy as np
import cv2

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

image = cv2.imread('frame119.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

for (x,y,w,h) in faces:
cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = image[y:y+h, x:x+w]

eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)

cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

是否需要添加其他行来解决此问题?
另外,图像的尺寸为680x480,我认为这可能是它仅检测到图像的眼睛区域的原因之一,但我对此一无所知。

感谢您的帮助。

最佳答案

如果未检测到脸部,则无法检测到眼睛。

所以尝试这些修改

import numpy as np
import cv2

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

image = cv2.imread('frame119.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

print len(faces) # it will print no of faces detected
for (x,y,w,h) in faces:
cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = image[y:y+h, x:x+w]
cv2.imshow('face',roi_color) # It will show a cropped face , if face is detected
cv2.waitKey()
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)

cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

关于python-2.7 - 使用opencv和python进行人脸检测只能检测眼睛区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39030340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com