所以我试图一个人脸检测程序,并用下面这段代码:Python的 - 人脸检测(detecMultiScale)
import numpy as np
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
img = cv2.imread('sachin.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 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_gray)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
的代码实际上是从here并没有完成其工作。它向我展示了图像,但没有标记脸部或眼睛。我正在与Rasbian Jessie OS一起开发Raspberry Pi。
这里有一些事情我尝试:
我试图cv2.imshow(“IMG”,灰色)和它显示的灰度图像,这意味着BRG =>灰色是好的。
我试图在随机的地方画一个矩形,所以cv2.rectangle函数是好的。
我检查了OpenCV/data文件夹,'haarcascade_frontalface_default.xml'和'haarcascade_eye.xml'文件都在那里。
我试图打印(faces_cascade),并且它返回 “CascadeClaasifier 0x741b48d0”
我试图打印(面),并将其返回(),这意味着没有什么是这个数组内。
我已经试过4,5图像用不同的亮度,没有一次成功
我觉得可能出问题的唯一部分是这一行:
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
因为打印(面)没有不返回任何价值。
任何人都可以帮忙吗?任何帮助表示感谢。
解决,而不是'haarcascade_frontalface_default,xml',键入文件的完整目录。与眼睛检测部分相同。