如何获得cv2.CascadeClassifier.detectMultiScale()的分数?

era*_*ran 10 python opencv computer-vision

使用Python

openCV函数

cv.HaarDetectObjects()
Run Code Online (Sandbox Code Playgroud)

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

如果我使用opencv2函数,

cv2.CascadeClassifier.detectMultiScale()
Run Code Online (Sandbox Code Playgroud)

我得到了检测到的对象,但没有得分.这使得难以获得检测的良好"置信度"度量.

有没有办法以某种方式,使用CV2?

Zif*_*ong 1

根据文档

\n\n
cv2.CascadeClassifier.detectMultiScale(image, rejectLevels, levelWeights[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) \xe2\x86\x92 objects\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

相应的(但未记录的)C++ API是:

\n\n
CV_WRAP virtual void detectMultiScale( const Mat& image,\n                               CV_OUT vector<Rect>& objects,\n                               vector<int>& rejectLevels,\n                               vector<double>& levelWeights,\n                               double scaleFactor=1.1,\n                               int minNeighbors=3, int flags=0,\n                               Size minSize=Size(),\n                               Size maxSize=Size(),\n                               bool outputRejectLevels=false );\n
Run Code Online (Sandbox Code Playgroud)\n

  • 您是否有使用带有rejectLevels和levelWeights的 detectorMultiScale 的示例? (4认同)