From c6319937e0001725041a910a9f7d4479890b2af8 Mon Sep 17 00:00:00 2001 From: madshall Date: Wed, 22 Oct 2014 20:16:22 -0400 Subject: [PATCH] - findContours() fixed - bitwiseAnd(), bitwiseNot(), bitwiseXor() may accept mask as the last argument since now --- src/Matrix.cc | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Matrix.cc b/src/Matrix.cc index 4978953..0ad3045 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -1027,7 +1027,12 @@ NAN_METHOD(Matrix::BitwiseXor) { Matrix *src1 = ObjectWrap::Unwrap(args[0]->ToObject()); Matrix *src2 = ObjectWrap::Unwrap(args[1]->ToObject()); - cv::bitwise_xor(src1->mat, src2->mat, self->mat); + if(args.Length() == 3){ + Matrix *mask = ObjectWrap::Unwrap(args[2]->ToObject()); + cv::bitwise_xor(src1->mat, src2->mat, self->mat, mask->mat); + }else{ + cv::bitwise_xor(src1->mat, src2->mat, self->mat); + } NanReturnNull(); } @@ -1039,6 +1044,12 @@ NAN_METHOD(Matrix::BitwiseNot) { Matrix *dst = ObjectWrap::Unwrap(args[0]->ToObject()); + if(args.Length() == 2){ + Matrix *mask = ObjectWrap::Unwrap(args[1]->ToObject()); + cv::bitwise_not(self->mat, dst->mat, mask->mat); + }else{ + cv::bitwise_not(self->mat, dst->mat); + } cv::bitwise_not(self->mat, dst->mat); NanReturnNull(); @@ -1052,7 +1063,12 @@ NAN_METHOD(Matrix::BitwiseAnd) { Matrix *src1 = ObjectWrap::Unwrap(args[0]->ToObject()); Matrix *src2 = ObjectWrap::Unwrap(args[1]->ToObject()); - cv::bitwise_and(src1->mat, src2->mat, self->mat); + if(args.Length() == 3){ + Matrix *mask = ObjectWrap::Unwrap(args[2]->ToObject()); + cv::bitwise_and(src1->mat, src2->mat, self->mat, mask->mat); + }else{ + cv::bitwise_and(src1->mat, src2->mat, self->mat); + } NanReturnNull(); } @@ -1125,7 +1141,11 @@ NAN_METHOD(Matrix::FindContours) { if (args[1]->IsNumber()) chain = args[1]->IntegerValue(); } + Matrix *self = ObjectWrap::Unwrap(args.This()); Local conts_to_return= NanNew(Contour::constructor)->GetFunction()->NewInstance(); + Contour *contours = ObjectWrap::Unwrap(conts_to_return); + + cv::findContours(self->mat, contours->contours, contours->hierarchy, mode, chain); NanReturnValue(conts_to_return);