Как получить оценку для cv2.CascadeClassifier.detectMultiScale()?

При использовании Python,

функция openCV

cv.HaarDetectObjects()

возвращает найденный объект вместе с оценкой обнаружения.

Если вместо этого я использую функцию opencv2,

cv2.CascadeClassifier.detectMultiScale()

Я получаю обнаруженный объект, но нет оценки. Это затрудняет получение хорошей "уверенности" в измерении обнаружения.

Есть ли способ получить это как-то, используя CV2?

Ответ 1

В соответствии с документацией

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

Список rejectLevels является своего рода оценкой, указывающей на достоверность результата обнаружения.

Соответствующий (но недокументированный) С++ 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 );