diff --git a/openbr/plugins/quality.cpp b/openbr/plugins/quality.cpp index 0e7bc66..0a02f40 100644 --- a/openbr/plugins/quality.cpp +++ b/openbr/plugins/quality.cpp @@ -184,10 +184,19 @@ class MatchProbabilityDistance : public Distance float compare(const cv::Mat &target, const cv::Mat &query) const { - const float rawScore = distance->compare(target, query); - if (rawScore == -std::numeric_limits::max()) return rawScore; - if (!Globals->scoreNormalization) return -log(rawScore+1); - return mp(rawScore, gaussian); + return normalize(distance->compare(target, query)); + } + + float compare(const uchar *a, const uchar *b, size_t size) const + { + return normalize(distance->compare(a, b, size)); + } + + float normalize(float score) const + { + if (score == -std::numeric_limits::max()) return score; + if (!Globals->scoreNormalization) return -log(score+1); + return mp(score, gaussian); } void store(QDataStream &stream) const