diff --git a/src/MatOp.cc b/src/MatOp.cc new file mode 100644 index 00000000..caffcf65 --- /dev/null +++ b/src/MatOp.cc @@ -0,0 +1,67 @@ +#include "MatOp.h" + +//Usage: cv.add(InputArray src1, InputArray src2, OutputArray dst, InputArray mask=noArray(), int dtype=-1) +Handle +MatOp::Add(const v8::Arguments& args){ + HandleScope scope; + + Matrix *src1 = ObjectWrap::Unwrap(args[0]->ToObject()); + Matrix *src2 = ObjectWrap::Unwrap(args[1]->ToObject()); + Matrix *dst = ObjectWrap::Unwrap(args[2]->ToObject()); + Matrix *mask = args.Length() < 4 ? new Matrix() : ObjectWrap::Unwrap(args[3]->ToObject()); + int dtype = args.Length() < 5 ? -1 : args[4]->Uint32Value(); + + cv::add(src1->mat, src2->mat, dst->mat, mask->mat, dtype); + + return scope.Close(v8::Null()); +} + +/* + +Handle +Matrix::Divide(const v8::Arguments& args) { + HandleScope scope; + + Matrix *self = ObjectWrap::Unwrap(args.This()); + + Matrix *src1 = ObjectWrap::Unwrap(args[0]->ToObject()); + cv::bitwise_not(src1->mat, self->mat); + + return scope.Close(v8::Null()); +} + +Handle +Matrix::Multiply(const v8::Arguments& args) { + HandleScope scope; + + Matrix *self = ObjectWrap::Unwrap(args.This()); + + Matrix *src1 = ObjectWrap::Unwrap(args[0]->ToObject()); + cv::bitwise_not(src1->mat, self->mat); + + return scope.Close(v8::Null()); +} + +Handle +Matrix::Subtract(const v8::Arguments& args) { + HandleScope scope; + + Matrix *self = ObjectWrap::Unwrap(args.This()); + + Matrix *src1 = ObjectWrap::Unwrap(args[0]->ToObject()); + cv::bitwise_not(src1->mat, self->mat); + + return scope.Close(v8::Null()); +} + +Handle +Matrix::Add(const v8::Arguments& args) { + HandleScope scope; + + Matrix *self = ObjectWrap::Unwrap(args.This()); + + Matrix *src1 = ObjectWrap::Unwrap(args[0]->ToObject()); + cv::bitwise_not(src1->mat, self->mat); + + return scope.Close(v8::Null()); +}*/ \ No newline at end of file diff --git a/src/MatOp.h b/src/MatOp.h new file mode 100644 index 00000000..cee56659 --- /dev/null +++ b/src/MatOp.h @@ -0,0 +1,9 @@ + +#include +#include "Matrix.h" + +class MatOp { + public: + static Handle Add(const v8::Arguments&); +}; + diff --git a/src/OpenCV.cc b/src/OpenCV.cc index 37b886f5..6d2c57fe 100755 --- a/src/OpenCV.cc +++ b/src/OpenCV.cc @@ -1,5 +1,6 @@ #include "OpenCV.h" #include "Matrix.h" +#include "MatOp.h" void OpenCV::Init(Handle target) { @@ -12,11 +13,10 @@ OpenCV::Init(Handle target) { target->Set(String::NewSymbol("version"), String::New(out, n)); NODE_SET_METHOD(target, "readImage", ReadImage); + NODE_SET_METHOD(target, "add", MatOp::Add); } - - Handle OpenCV::ReadImage(const Arguments &args) { HandleScope scope;