1

代码:

cascade = cv2.CascadeClassifier(CASCADE_XML_PATH)

result = cascade.detectMultiScale(greyscale_image, scaleFactor=1.05, minNeighbors=1, minSize=(200, 200), flags=0)
print(result)

result2 = cascade.detectMultiScale2(greyscale_image, scaleFactor=1.05, minNeighbors=1, minSize=(200, 200), flags=0)
print(result2)

result3 = cascade.detectMultiScale3(greyscale_image, scaleFactor=1.05, minNeighbors=1, minSize=(200, 200), flags=0, outputRejectLevels=True)
print(result3)

常数CASCADE_XML_PATH实际上是[...]/opencv-3.1.0/data/haarcascades/haarcascade_frontalface_alt2.xml,所以我正在做人脸检测。

输出:

[[ 34 339 403 403]]
(array([[ 34, 339, 403, 403]], dtype=int32), array([[49]], dtype=int32))
(array([[112, 297, 258, 258]], dtype=int32), array([[20]], dtype=int32), array([[ 56.77932617]]))

可以看到,cascade.detectMultiScale()cascade.detectMultiScale2()给定的bounding box一样,cascade.detectMultiScale3()却给定了不同的bounding box,这就莫名其妙了。难道我做错了什么?有没有其他人经历过这个?

4

0 回答 0