旧版本的 OpenCV 返回检测到的邻居数量,这可以用作置信度的度量。
例如:
cv.HaarDetectObjects(grayscale, cascade, storage, 1.2, 2,
cv.CV_HAAR_DO_CANNY_PRUNING, (50,50))
[((174, 54, 114, 114), 53)]
新版本的openCV改变了使用的签名,所以现在要么
detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[,
maxSize]]]]]) -> objects
或者
detectMultiScale(image, rejectLevels, levelWeights[,
scaleFactor[, minNeighbors[,
flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) -> objects
第二个签名有rejectLevels
,据levelWeights
我了解,可以用来获得信心。
这是函数的 c++ 版本的反映。但是,我不清楚如何传递这些参数以在 python 中更改。例如,我尝试了以下内容,它不会改变r
并且w
:
r = list()
w = list()
res = cascade2.detectMultiScale(image=img, rejectLevels=r, levelWeights=w)
print res
print r, w
[[ 82 158 53 53]
[175 157 52 52]
[103 266 112 112]]
[] []
任何人都可以解释如何通过r
,w
所以他们会更新?