From cd7b6d16bd5f90b46026e98b9aac238d8a02fc9e Mon Sep 17 00:00:00 2001 From: Anshul Jain Date: Fri, 20 Nov 2015 11:12:20 -0800 Subject: [PATCH 1/3] Fix typo in Matric convertTo function --- src/Matrix.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Matrix.cc b/src/Matrix.cc index 97e890d..8c701de 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -1893,7 +1893,7 @@ NAN_METHOD(Matrix::ConvertTo) { // param 3 - beta double beta = 0; if (info.Length() >= 4) { - DOUBLE_FROM_ARGS(alpha, 3); + DOUBLE_FROM_ARGS(beta, 3); } self->mat.convertTo(dest->mat, rtype, alpha, beta); From 02aa27da1dc1bbd767c7d8534345ed3f278be41b Mon Sep 17 00:00:00 2001 From: Anshul Jain Date: Fri, 20 Nov 2015 12:11:00 -0800 Subject: [PATCH 2/3] Return a new matrix after reshape operation to preserve the original matrix --- src/Matrix.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Matrix.cc b/src/Matrix.cc index 8c701de..e0026a7 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -2435,11 +2435,13 @@ NAN_METHOD(Matrix::Reshape) { JSTHROW("Invalid number of arguments"); } - cv::Mat res = self->mat.reshape(cn, rows); - ~self->mat; - self->mat = res; + Local img_to_return = + Nan::New(Matrix::constructor)->GetFunction()->NewInstance(); + Matrix *img = Nan::ObjectWrap::Unwrap(img_to_return); - return; + img->mat = self->mat.reshape(cn, rows); + + info.GetReturnValue().Set(img_to_return); } NAN_METHOD(Matrix::Release) { From 1d649971b1ce0ccd6cc544af8f63d1e77c73414a Mon Sep 17 00:00:00 2001 From: Anshul Jain Date: Fri, 20 Nov 2015 11:41:13 -0800 Subject: [PATCH 3/3] Add some matrix unit tests --- examples/test.js | 6 ++++++ test/.unit.js.swp | Bin 0 -> 20480 bytes test/unit.js | 40 +++++++++++++++++++++++++++++++++++++--- 3 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 examples/test.js create mode 100644 test/.unit.js.swp diff --git a/examples/test.js b/examples/test.js new file mode 100644 index 0000000..5513781 --- /dev/null +++ b/examples/test.js @@ -0,0 +1,6 @@ +var cv = require('../lib/opencv'); + +var mat = new cv.Matrix(1, 2, cv.Constants.CV_8U, [1]); +var row = mat.pixelRow(0); +console.log("mat: " + row[0] + row[1]); + diff --git a/test/.unit.js.swp b/test/.unit.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..b3cd16cdd6955cfa91c8f2512197894c8275f0f8 GIT binary patch literal 20480 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