我一直在试着在照片中发现人,我在行人身上取得了一些成功。然而,对于我的用例场景,我需要能够检测照片中的半身/上身(腰部以上)或头部。在
我试过上半身的哈尔瀑布。以下是我使用的代码:
import numpy as np
import cv2
img = cv2.imread('/path/to/img.jpg',0)
upperBody_cascade = cv2.CascadeClassifier('path/to/haarcascade_upperbody.xml')
arrUpperBody = upperBody_cascade.detectMultiScale(img)
if arrUpperBody != ():
for (x,y,w,h) in arrUpperBody:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
print 'body found'
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我用了3张测试图像。请注意,这是同一张图片,在一定程度上裁剪。在
以下是我得到的结果:
如你所见,膝盖向上和胸部向上的照片能够分别探测到上身和头部区域。在
然而,腰部以上的照片没有返回任何结果,即使上身和头部是可见的。在
有人知道这是怎么发生的吗?为什么会这样?怎样做才能使上半身检测更加一致?在
目前没有回答
相关问题 更多 >
编程相关推荐