openCV人脸检测

时间:2013-12-15 21:04:47

标签: python opencv

这是一个使用openCV进行面部检测的简单代码:

import cv2
img = cv2.imread("one.jpg")
hc = cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml")
faces = hc.detectMultiScale(img)

for face in faces:
  print 'inside for loop ! '
  cv2.rectangle(img, (face[0], face[1]), (face[0] + face[2], face[0] + face[3]), (255,     0, 0), 3)

cv2.imshow("Face", img)
if cv2.waitKey(5000) == 27:
  cv2.destroyWindow("Face")
cv2.imwrite("two.jpg", img)

但是当我运行此代码时,显示的最终图像,即two.jpg与输入中给出的相同,即one.jpg!没有检测到任何面孔.. for循环中的代码永远不会执行...为什么会这样?我应该在代码中做出任何更改吗?

this is the image I am giving as one.jpg & the final image ie two.jpg also looks the same

1 个答案:

答案 0 :(得分:0)

似乎没有检测到您使用的图像中的任何面(在这种情况下,不会执行for循环)。你可以:

  1. 使用易于检测(大,无眼镜)脸部的图像。
  2. 使用调试器逐步执行代码(我不知道如何在Python中执行此操作,但应该更容易找到)
  3. 检查面部的以下属性 一个。尺寸 湾检测到每个面部的位置坐标。