mirror of
https://github.com/peterbraden/node-opencv.git
synced 2025-12-08 19:45:55 +00:00
Work around bug in OpenCV3 FaceRecognizer::predict
Older versions of OpenCV3 incorrectly returned label=0 at confidence=DBL_MAX
instead of label=-1 on failure. This can be removed once the fix* becomes
more widespread.
* 0aa58ae9b3 (diff-d9c561bf45c255c5951ff1ab55e80473)
This commit is contained in:
parent
2405bc5a59
commit
85b4542b7f
@ -282,6 +282,17 @@ NAN_METHOD(FaceRecognizerWrap::PredictSync) {
|
||||
double confidence = 0.0;
|
||||
self->rec->predict(im, predictedLabel, confidence);
|
||||
|
||||
#if CV_MAJOR_VERSION >= 3
|
||||
// Older versions of OpenCV3 incorrectly returned label=0 at
|
||||
// confidence=DBL_MAX instead of label=-1 on failure. This can be removed
|
||||
// once the fix* becomes more widespread.
|
||||
//
|
||||
// * https://github.com/Itseez/opencv_contrib/commit/0aa58ae9b30a017b356a86d29453c0b56ed9e625#diff-d9c561bf45c255c5951ff1ab55e80473
|
||||
if (predictedLabel == 0 && confidence == DBL_MAX) {
|
||||
predictedLabel = -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
v8::Local<v8::Object> res = Nan::New<Object>();
|
||||
res->Set(Nan::New("id").ToLocalChecked(), Nan::New<Number>(predictedLabel));
|
||||
res->Set(Nan::New("confidence").ToLocalChecked(), Nan::New<Number>(confidence));
|
||||
@ -304,6 +315,16 @@ public:
|
||||
|
||||
void Execute() {
|
||||
this->rec->predict(this->im, this->predictedLabel, this->confidence);
|
||||
#if CV_MAJOR_VERSION >= 3
|
||||
// Older versions of OpenCV3 incorrectly returned label=0 at
|
||||
// confidence=DBL_MAX instead of label=-1 on failure. This can be removed
|
||||
// once the fix* becomes more widespread.
|
||||
//
|
||||
// * https://github.com/Itseez/opencv_contrib/commit/0aa58ae9b30a017b356a86d29453c0b56ed9e625#diff-d9c561bf45c255c5951ff1ab55e80473
|
||||
if (this->predictedLabel == 0 && this->confidence == DBL_MAX) {
|
||||
this->predictedLabel = -1;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void HandleOKCallback() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user