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
2 番目の署名には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
、更新されますか?