diff --git a/src/Matrix.cc b/src/Matrix.cc index 3a3fce0..d80fa0f 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -1658,9 +1658,16 @@ Matrix::Split(const v8::Arguments& args) { Matrix * self = ObjectWrap::Unwrap(args.This()); + unsigned int size = self->mat.channels(); vector channels; + + // 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); - 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();