From 20efb8313bd6f101782f3a6cc60468052bc34f00 Mon Sep 17 00:00:00 2001 From: Oskar Dahlberg Date: Mon, 22 Sep 2014 23:35:34 +0200 Subject: [PATCH] Revert "Fixed split not working" This reverts commit bc9be2f1086ecb5e9227e6cac846041d26b2e3eb. --- src/Matrix.cc | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/src/Matrix.cc b/src/Matrix.cc index d32ad0e..25cb14a 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -1687,31 +1687,25 @@ Matrix::CvtColor(const v8::Arguments& args) { // arrChannels = img.split(); Handle Matrix::Split(const v8::Arguments& args) { - HandleScope scope; + HandleScope scope; - Matrix * self = ObjectWrap::Unwrap(args.This()); + Matrix * self = ObjectWrap::Unwrap(args.This()); - unsigned int size = self->mat.channels(); - vector channels; + vector channels; + cv::split(self->mat, channels); + unsigned int size = channels.size(); + v8::Local arrChannels = v8::Array::New(size); + for (unsigned int i = 0; i < size; i++) { + Local matObject = Matrix::constructor->GetFunction()->NewInstance(); + Matrix * m = ObjectWrap::Unwrap(matObject); + m->mat = channels[i]; + arrChannels->Set(i, matObject); + } - // Split doesn't seem to work on empty vectors - for (int i = 0; i < size; i++) { - channels.push_back(cv::Mat()); - } - - cv::split(self->mat, channels); - - v8::Local arrChannels = v8::Array::New(size); - for (unsigned int i = 0; i < size; i++) { - Local matObject = Matrix::constructor->GetFunction()->NewInstance(); - Matrix * m = ObjectWrap::Unwrap(matObject); - m->mat = channels[i]; - arrChannels->Set(i, matObject); - } - - return scope.Close(arrChannels); + return scope.Close(arrChannels); } + // @author SergeMv // img.merge(arrChannels); Handle