diff --git a/modules/core/src/matrix.cpp b/modules/core/src/matrix.cpp index 67482590e7..3a7acf4e5a 100644 --- a/modules/core/src/matrix.cpp +++ b/modules/core/src/matrix.cpp @@ -82,7 +82,7 @@ Mat::Mat(const IplImage* img, bool copyData) if( copyData ) { Mat m = *this; - rows = cols = 0; + release(); if( !img->roi || !img->roi->coi || img->dataOrder == IPL_DATA_ORDER_PLANE) m.copyTo(*this); diff --git a/modules/imgproc/src/color.cpp b/modules/imgproc/src/color.cpp index 2baf3024c8..5a3f9b44f6 100644 --- a/modules/imgproc/src/color.cpp +++ b/modules/imgproc/src/color.cpp @@ -2619,6 +2619,7 @@ void cvtColor( const Mat& src, Mat& dst, int code, int dcn ) case CV_BayerBG2BGR: case CV_BayerGB2BGR: case CV_BayerRG2BGR: case CV_BayerGR2BGR: case CV_BayerBG2BGR_VNG: case CV_BayerGB2BGR_VNG: case CV_BayerRG2BGR_VNG: case CV_BayerGR2BGR_VNG: + if(dcn <= 0) dcn = 3; CV_Assert( scn == 1 && dcn == 3 && depth == CV_8U ); dst.create(sz, CV_8UC3);