From 48f18f55269b21d3618c30ac25b01ebf6341403b Mon Sep 17 00:00:00 2001 From: wenq1 Date: Thu, 11 Feb 2016 22:35:42 +0800 Subject: [PATCH 1/3] - add moments --- src/Matrix.cc | 26 ++++++++++++++++++++++++++ src/Matrix.h | 1 + 2 files changed, 27 insertions(+) diff --git a/src/Matrix.cc b/src/Matrix.cc index 51525ff..2675fd5 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -70,6 +70,7 @@ void Matrix::Init(Local target) { Nan::SetPrototypeMethod(ctor, "bitwiseNot", BitwiseNot); Nan::SetPrototypeMethod(ctor, "bitwiseAnd", BitwiseAnd); Nan::SetPrototypeMethod(ctor, "countNonZero", CountNonZero); + Nan::SetPrototypeMethod(ctor, "moments", Moments); Nan::SetPrototypeMethod(ctor, "canny", Canny); Nan::SetPrototypeMethod(ctor, "dilate", Dilate); Nan::SetPrototypeMethod(ctor, "erode", Erode); @@ -1354,6 +1355,31 @@ NAN_METHOD(Matrix::Split) { info.GetReturnValue().Set(Nan::Null()); } */ +NAN_METHOD(Matrix::Moments) { + Nan::HandleScope scope; + + Matrix *self = Nan::ObjectWrap::Unwrap(info.This()); + + cv::Moments mo = moments( self->mat, false ); + + Local res = Nan::New(); + + res->Set(Nan::New("m00").ToLocalChecked(), Nan::New(mo.m00)); + res->Set(Nan::New("m10").ToLocalChecked(), Nan::New(mo.m10)); + res->Set(Nan::New("m01").ToLocalChecked(), Nan::New(mo.m01)); + res->Set(Nan::New("m11").ToLocalChecked(), Nan::New(mo.m11)); + + res->Set(Nan::New("mu20").ToLocalChecked(), Nan::New(mo.mu20)); + res->Set(Nan::New("mu11").ToLocalChecked(), Nan::New(mo.mu11)); + res->Set(Nan::New("mu02").ToLocalChecked(), Nan::New(mo.mu02)); + res->Set(Nan::New("mu30").ToLocalChecked(), Nan::New(mo.mu30)); + res->Set(Nan::New("mu21").ToLocalChecked(), Nan::New(mo.mu21)); + res->Set(Nan::New("mu12").ToLocalChecked(), Nan::New(mo.mu12)); + res->Set(Nan::New("mu03").ToLocalChecked(), Nan::New(mo.mu03)); + + info.GetReturnValue().Set(res); +} + NAN_METHOD(Matrix::Canny) { Nan::HandleScope scope; diff --git a/src/Matrix.h b/src/Matrix.h index 2d48a59..042c86d 100755 --- a/src/Matrix.h +++ b/src/Matrix.h @@ -74,6 +74,7 @@ public: JSFUNC(BitwiseAnd) JSFUNC(CountNonZero) //JSFUNC(Split) + JSFUNC(Moments) JSFUNC(Canny) JSFUNC(Dilate) JSFUNC(Erode) From fb6ac0ff30b959b010969fdb1996ea796e47ae17 Mon Sep 17 00:00:00 2001 From: wenq1 Date: Fri, 12 Feb 2016 14:58:13 +0800 Subject: [PATCH 2/3] - more work on mements for matrix --- src/Matrix.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Matrix.cc b/src/Matrix.cc index 2675fd5..5985a6d 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -1367,7 +1367,13 @@ NAN_METHOD(Matrix::Moments) { res->Set(Nan::New("m00").ToLocalChecked(), Nan::New(mo.m00)); res->Set(Nan::New("m10").ToLocalChecked(), Nan::New(mo.m10)); res->Set(Nan::New("m01").ToLocalChecked(), Nan::New(mo.m01)); + res->Set(Nan::New("m20").ToLocalChecked(), Nan::New(mo.m20)); res->Set(Nan::New("m11").ToLocalChecked(), Nan::New(mo.m11)); + res->Set(Nan::New("m02").ToLocalChecked(), Nan::New(mo.m02)); + res->Set(Nan::New("m30").ToLocalChecked(), Nan::New(mo.m30)); + res->Set(Nan::New("m21").ToLocalChecked(), Nan::New(mo.m21)); + res->Set(Nan::New("m12").ToLocalChecked(), Nan::New(mo.m12)); + res->Set(Nan::New("m03").ToLocalChecked(), Nan::New(mo.m03)); res->Set(Nan::New("mu20").ToLocalChecked(), Nan::New(mo.mu20)); res->Set(Nan::New("mu11").ToLocalChecked(), Nan::New(mo.mu11)); @@ -1377,6 +1383,14 @@ NAN_METHOD(Matrix::Moments) { res->Set(Nan::New("mu12").ToLocalChecked(), Nan::New(mo.mu12)); res->Set(Nan::New("mu03").ToLocalChecked(), Nan::New(mo.mu03)); + res->Set(Nan::New("nu20").ToLocalChecked(), Nan::New(mo.nu20)); + res->Set(Nan::New("nu11").ToLocalChecked(), Nan::New(mo.nu11)); + res->Set(Nan::New("nu02").ToLocalChecked(), Nan::New(mo.nu02)); + res->Set(Nan::New("nu30").ToLocalChecked(), Nan::New(mo.nu30)); + res->Set(Nan::New("nu21").ToLocalChecked(), Nan::New(mo.nu21)); + res->Set(Nan::New("nu12").ToLocalChecked(), Nan::New(mo.nu12)); + res->Set(Nan::New("nu03").ToLocalChecked(), Nan::New(mo.nu03)); + info.GetReturnValue().Set(res); } From 5d1860d1bf53785a007a2d65a8e32ac0ce84facf Mon Sep 17 00:00:00 2001 From: wenq1 Date: Fri, 12 Feb 2016 15:01:22 +0800 Subject: [PATCH 3/3] - add consts for contour finding --- src/Constants.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Constants.cc b/src/Constants.cc index f2bd76a..f492a2f 100644 --- a/src/Constants.cc +++ b/src/Constants.cc @@ -85,6 +85,11 @@ void Constants::Init(Local target) { CONST_ENUM(NORM_RELATIVE); CONST_ENUM(NORM_TYPE_MASK); + CONST_ENUM(RETR_EXTERNAL); + CONST_ENUM(RETR_LIST); + CONST_ENUM(RETR_CCOMP); + CONST_ENUM(RETR_TREE); + target->Set(Nan::New("Constants").ToLocalChecked(), obj); }