2017-07-03 27 views
0

我试图使用哈尔级联发现上身。 但我仍然没有得到任何图像检测。使用哈尔级联的上肢身体检测

import numpy as np 


import cv2 

cascade = cv2.CascadeClassifier('haarcascade_upperbody.xml'); 

imgPath = '/home/ayush/Desktop/images.jpeg'; 
img = cv2.imread(imgPath); 
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY); 

body = cascade.detectMultiScale(
    gray, 
    scaleFactor = 1.1, 
    minNeighbors = 5, 
    minSize = (30,30), 
    flags = cv2.CASCADE_SCALE_IMAGE 
) 

for (x, y, w, h) in body: 
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2) 

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

为什么这样呢? 我正在使用OpenCV3。

+0

尝试一系列图像或视频。它可能不适用于这个图像。如果您没有其他图像,请尝试将图像旋转+/- 15度并尝试。在这里发布你的图片。最初还要删除params minSize和flags。当你得到检测,你可以稍后进行优化。 – harshkn

回答

0

有可能您的scaleFactor太小。我试着准确地运行你的代码(虽然用我自己的图片),但在1.1找到没有结果,但在1.01找到结果。

请参阅here了解参数如何影响您的结果。