opencv3 Python Haar Cascade上半身探测器对半身(腰部以上)照片不起作用?

2024-09-28 01:23:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在试着在照片中发现人,我在行人身上取得了一些成功。然而,对于我的用例场景,我需要能够检测照片中的半身/上身(腰部以上)或头部。在

我试过上半身的哈尔瀑布。以下是我使用的代码:

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张测试图像。请注意,这是同一张图片,在一定程度上裁剪。在

  1. 膝盖抬高
  2. 腰部抬高
  3. 挺胸

以下是我得到的结果:

  1. 膝盖抬高

Knee Up

  1. 腰部抬高

Waist Up

  1. 挺胸

Chest Up

如你所见,膝盖向上和胸部向上的照片能够分别探测到上身和头部区域。在

然而,腰部以上的照片没有返回任何结果,即使上身和头部是可见的。在

有人知道这是怎么发生的吗?为什么会这样?怎样做才能使上半身检测更加一致?在


Tags: topathimportimg用例cv2照片cascade

热门问题