代码:
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,这就莫名其妙了。难道我做错了什么?有没有其他人经历过这个?