From 4ce14beb967c84cd2e6ac428ef9e75ae165ff982 Mon Sep 17 00:00:00 2001 From: Tim Park Date: Sun, 28 Jul 2013 11:25:01 -0700 Subject: [PATCH] Add bitwiseXor and absDiff to Matrix operations --- src/Matrix.cc | 29 +++++++++++++++++++++++++++++ src/Matrix.h | 2 ++ 2 files changed, 31 insertions(+) diff --git a/src/Matrix.cc b/src/Matrix.cc index 8a254b2..b93c671 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -58,7 +58,9 @@ Matrix::Init(Handle target) { NODE_SET_PROTOTYPE_METHOD(constructor, "flip", Flip); NODE_SET_PROTOTYPE_METHOD(constructor, "roi", ROI); NODE_SET_PROTOTYPE_METHOD(constructor, "ptr", Ptr); + 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, "split", Split); NODE_SET_PROTOTYPE_METHOD(constructor, "canny", Canny); NODE_SET_PROTOTYPE_METHOD(constructor, "dilate", Dilate); @@ -767,6 +769,20 @@ Matrix::Ptr(const v8::Arguments& args) { // return Undefined(); } +Handle +Matrix::AbsDiff(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::absdiff(src1->mat, src2->mat, self->mat); + + return scope.Close(v8::Null()); +} + Handle Matrix::AddWeighted(const v8::Arguments& args) { HandleScope scope; @@ -786,6 +802,19 @@ Matrix::AddWeighted(const v8::Arguments& args) { return scope.Close(v8::Null()); } +Handle +Matrix::BitwiseXor(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_xor(src1->mat, src2->mat, self->mat); + + return scope.Close(v8::Null()); +} Handle Matrix::Split(const v8::Arguments& args) { diff --git a/src/Matrix.h b/src/Matrix.h index 5fe490a..5197001 100755 --- a/src/Matrix.h +++ b/src/Matrix.h @@ -53,7 +53,9 @@ class Matrix: public node::ObjectWrap { JSFUNC(Flip) JSFUNC(ROI) JSFUNC(Ptr) + JSFUNC(AbsDiff) JSFUNC(AddWeighted) + JSFUNC(BitwiseXor) JSFUNC(Split) JSFUNC(Canny) JSFUNC(Dilate)