当使用 Python 时,

openCV功能

cv.HaarDetectObjects()

返回找到的对象以及检测分数。

如果我改用opencv2函数,
cv2.CascadeClassifier.detectMultiScale()

我得到了检测到的物体,但没有得分。这使得难以获得良好的检测“置信度”度量。

有没有办法使用CV2做到这一点?

最佳答案

根据documentation

cv2.CascadeClassifier.detectMultiScale(image, rejectLevels, levelWeights[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) → objects

列表rejectLevels是一种分数,表示检测结果的置信度。

对应的(但未记录)C++ API是:
CV_WRAP virtual void detectMultiScale( const Mat& image,
                               CV_OUT vector<Rect>& objects,
                               vector<int>& rejectLevels,
                               vector<double>& levelWeights,
                               double scaleFactor=1.1,
                               int minNeighbors=3, int flags=0,
                               Size minSize=Size(),
                               Size maxSize=Size(),
                               bool outputRejectLevels=false );

关于python - 如何获得cv2.CascadeClassifier.detectMultiScale()的分数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13621208/

10-14 18:02