使用哈尔级联上身检测

问题描述 投票:1回答:2

我试图用哈尔级联来检测上身。而我依然没有得到在图像上的任何检测。

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。

computer-vision opencv3.0
2个回答
1
投票

这可能是你的scaleFactor太小。我想正好运行代码(虽然我自己的图像),并发现没有结果在1.1,却发现在1.01结果。

here对的参数是如何影响你的结果的描述。


0
投票

这是因为该文件haarcascade_upperbody.xml训练与行人检测使用,并且很可能是你的图像不匹配这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.