使用haarcascades进行全身检测

时间:2016-03-10 17:18:02

标签: python-2.7 opencv object-detection

我想使用全身haarcascades来检测图像中的人的全身。这是我的代码

import numpy as np
import cv2
from matplotlib import pyplot as plt

bodydetection = cv2.CascadeClassifier('cascades/haarcascade_fullbody.xml')
img = cv2.imread('gambar/fullbody2.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
body = bodydetection.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in body:
   cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)

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

这是结果

Result

如您所见,我的代码未检测到图像中的某些内容。顺便说一句,我是opencv的新手,这是我在这里的第一个问题,所以如果我错了就纠正我,我希望有人可以帮助我纠正我的代码。抱歉英文不好

2 个答案:

答案 0 :(得分:1)

我建议你为min,max framesize设置一些参数,可能还有一个不高的比例因子。

关于人员检测或行人检测的讨论很多。 您可能想在那里搜索一些信息。

http://funvision.blogspot.de/2016/03/opencv-31-pedestrian-people-detection.html

答案 1 :(得分:0)

您可以考虑使用 OpenCV haarcascade_fullbody.xml,其中包含检测是否为人类的数据,

请尝试添加一组人(不仅仅是一个人)的照片,看看是否检测到其中任何一个人。