Skip to content

Commit d7b7161

Browse files
committed
Merge pull request #369 from wenq1/master
Add Moments method for matrix
2 parents 5fb426a + 5d1860d commit d7b7161

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

src/Constants.cc

+5
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ void Constants::Init(Local<Object> target) {
8585
CONST_ENUM(NORM_RELATIVE);
8686
CONST_ENUM(NORM_TYPE_MASK);
8787

88+
CONST_ENUM(RETR_EXTERNAL);
89+
CONST_ENUM(RETR_LIST);
90+
CONST_ENUM(RETR_CCOMP);
91+
CONST_ENUM(RETR_TREE);
92+
8893
target->Set(Nan::New("Constants").ToLocalChecked(), obj);
8994
}
9095

src/Matrix.cc

+40
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ void Matrix::Init(Local<Object> target) {
7070
Nan::SetPrototypeMethod(ctor, "bitwiseNot", BitwiseNot);
7171
Nan::SetPrototypeMethod(ctor, "bitwiseAnd", BitwiseAnd);
7272
Nan::SetPrototypeMethod(ctor, "countNonZero", CountNonZero);
73+
Nan::SetPrototypeMethod(ctor, "moments", Moments);
7374
Nan::SetPrototypeMethod(ctor, "canny", Canny);
7475
Nan::SetPrototypeMethod(ctor, "dilate", Dilate);
7576
Nan::SetPrototypeMethod(ctor, "erode", Erode);
@@ -1354,6 +1355,45 @@ NAN_METHOD(Matrix::Split) {
13541355
info.GetReturnValue().Set(Nan::Null());
13551356
} */
13561357

1358+
NAN_METHOD(Matrix::Moments) {
1359+
Nan::HandleScope scope;
1360+
1361+
Matrix *self = Nan::ObjectWrap::Unwrap<Matrix>(info.This());
1362+
1363+
cv::Moments mo = moments( self->mat, false );
1364+
1365+
Local<Object> res = Nan::New<Object>();
1366+
1367+
res->Set(Nan::New("m00").ToLocalChecked(), Nan::New<Number>(mo.m00));
1368+
res->Set(Nan::New("m10").ToLocalChecked(), Nan::New<Number>(mo.m10));
1369+
res->Set(Nan::New("m01").ToLocalChecked(), Nan::New<Number>(mo.m01));
1370+
res->Set(Nan::New("m20").ToLocalChecked(), Nan::New<Number>(mo.m20));
1371+
res->Set(Nan::New("m11").ToLocalChecked(), Nan::New<Number>(mo.m11));
1372+
res->Set(Nan::New("m02").ToLocalChecked(), Nan::New<Number>(mo.m02));
1373+
res->Set(Nan::New("m30").ToLocalChecked(), Nan::New<Number>(mo.m30));
1374+
res->Set(Nan::New("m21").ToLocalChecked(), Nan::New<Number>(mo.m21));
1375+
res->Set(Nan::New("m12").ToLocalChecked(), Nan::New<Number>(mo.m12));
1376+
res->Set(Nan::New("m03").ToLocalChecked(), Nan::New<Number>(mo.m03));
1377+
1378+
res->Set(Nan::New("mu20").ToLocalChecked(), Nan::New<Number>(mo.mu20));
1379+
res->Set(Nan::New("mu11").ToLocalChecked(), Nan::New<Number>(mo.mu11));
1380+
res->Set(Nan::New("mu02").ToLocalChecked(), Nan::New<Number>(mo.mu02));
1381+
res->Set(Nan::New("mu30").ToLocalChecked(), Nan::New<Number>(mo.mu30));
1382+
res->Set(Nan::New("mu21").ToLocalChecked(), Nan::New<Number>(mo.mu21));
1383+
res->Set(Nan::New("mu12").ToLocalChecked(), Nan::New<Number>(mo.mu12));
1384+
res->Set(Nan::New("mu03").ToLocalChecked(), Nan::New<Number>(mo.mu03));
1385+
1386+
res->Set(Nan::New("nu20").ToLocalChecked(), Nan::New<Number>(mo.nu20));
1387+
res->Set(Nan::New("nu11").ToLocalChecked(), Nan::New<Number>(mo.nu11));
1388+
res->Set(Nan::New("nu02").ToLocalChecked(), Nan::New<Number>(mo.nu02));
1389+
res->Set(Nan::New("nu30").ToLocalChecked(), Nan::New<Number>(mo.nu30));
1390+
res->Set(Nan::New("nu21").ToLocalChecked(), Nan::New<Number>(mo.nu21));
1391+
res->Set(Nan::New("nu12").ToLocalChecked(), Nan::New<Number>(mo.nu12));
1392+
res->Set(Nan::New("nu03").ToLocalChecked(), Nan::New<Number>(mo.nu03));
1393+
1394+
info.GetReturnValue().Set(res);
1395+
}
1396+
13571397
NAN_METHOD(Matrix::Canny) {
13581398
Nan::HandleScope scope;
13591399

src/Matrix.h

+1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ class Matrix: public node_opencv::Matrix{
7474
JSFUNC(BitwiseAnd)
7575
JSFUNC(CountNonZero)
7676
//JSFUNC(Split)
77+
JSFUNC(Moments)
7778
JSFUNC(Canny)
7879
JSFUNC(Dilate)
7980
JSFUNC(Erode)

0 commit comments

Comments
 (0)