From 06ccd6919dd2091fef897c62c35732340f879c46 Mon Sep 17 00:00:00 2001 From: John Ludwig Date: Tue, 27 May 2014 19:58:29 -0700 Subject: [PATCH] Add bitwiseNot, bitwiseAnd methods Modelled after existing BitwiseXor method --- src/Matrix.cc | 29 +++++++++++++++++++++++++++++ src/Matrix.h | 2 ++ 2 files changed, 31 insertions(+) diff --git a/src/Matrix.cc b/src/Matrix.cc index 5b0f960..1c02e60 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -67,6 +67,8 @@ Matrix::Init(Handle target) { NODE_SET_PROTOTYPE_METHOD(constructor, "absDiff", AbsDiff); NODE_SET_PROTOTYPE_METHOD(constructor, "addWeighted", AddWeighted); NODE_SET_PROTOTYPE_METHOD(constructor, "bitwiseXor", BitwiseXor); + NODE_SET_PROTOTYPE_METHOD(constructor, "bitwiseNot", BitwiseNot); + NODE_SET_PROTOTYPE_METHOD(constructor, "bitwiseAnd", BitwiseAnd); NODE_SET_PROTOTYPE_METHOD(constructor, "countNonZero", CountNonZero); NODE_SET_PROTOTYPE_METHOD(constructor, "canny", Canny); NODE_SET_PROTOTYPE_METHOD(constructor, "dilate", Dilate); @@ -999,6 +1001,33 @@ Matrix::BitwiseXor(const v8::Arguments& args) { return scope.Close(v8::Null()); } +Handle +Matrix::BitwiseNot(const v8::Arguments& args) { + HandleScope scope; + + Matrix *self = ObjectWrap::Unwrap(args.This()); + + Matrix *dst = ObjectWrap::Unwrap(args[0]->ToObject()); + + cv::bitwise_not(self->mat, dst->mat); + + return scope.Close(v8::Null()); +} + +Handle +Matrix::BitwiseAnd(const v8::Arguments& args) { + HandleScope scope; + + Matrix *self = ObjectWrap::Unwrap(args.This()); + + Matrix *src1 = ObjectWrap::Unwrap(args[0]->ToObject()); + Matrix *src2 = ObjectWrap::Unwrap(args[1]->ToObject()); + + cv::bitwise_and(src1->mat, src2->mat, self->mat); + + return scope.Close(v8::Null()); +} + Handle Matrix::CountNonZero(const v8::Arguments& args) { HandleScope scope; diff --git a/src/Matrix.h b/src/Matrix.h index 7257093..d53ef19 100755 --- a/src/Matrix.h +++ b/src/Matrix.h @@ -57,6 +57,8 @@ class Matrix: public node::ObjectWrap { JSFUNC(AbsDiff) JSFUNC(AddWeighted) JSFUNC(BitwiseXor) + JSFUNC(BitwiseNot) + JSFUNC(BitwiseAnd) JSFUNC(CountNonZero) //JSFUNC(Split) JSFUNC(Canny)