diff --git a/src/Matrix.cc b/src/Matrix.cc index ef8e24a..f3b8c54 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -68,6 +68,7 @@ Matrix::Init(Handle target) { 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); @@ -1052,14 +1053,29 @@ Matrix::BitwiseXor(const v8::Arguments& args) { Handle Matrix::BitwiseNot(const v8::Arguments& args) { - HandleScope scope; + HandleScope scope; - Matrix *self = ObjectWrap::Unwrap(args.This()); + Matrix *self = ObjectWrap::Unwrap(args.This()); - Matrix *src1 = ObjectWrap::Unwrap(args[0]->ToObject()); - cv::bitwise_not(src1->mat, self->mat); + Matrix *dst = ObjectWrap::Unwrap(args[0]->ToObject()); - return scope.Close(v8::Null()); + 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 diff --git a/src/Matrix.h b/src/Matrix.h index c3ec0ba..c3c5193 100755 --- a/src/Matrix.h +++ b/src/Matrix.h @@ -58,6 +58,7 @@ class Matrix: public node::ObjectWrap { JSFUNC(AddWeighted) JSFUNC(BitwiseXor) JSFUNC(BitwiseNot) + JSFUNC(BitwiseAnd) JSFUNC(CountNonZero) //JSFUNC(Split) JSFUNC(Canny)