imgproc(cvtColor): slightly improve error messages

Do not try to process empty inputs.
This commit is contained in:
Alexander Alekhin 2018-08-08 17:09:12 +03:00
parent 9f2edc1135
commit a0cff0be94
2 changed files with 7 additions and 1 deletions

View File

@ -178,6 +178,8 @@ void cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
{ {
CV_INSTRUMENT_REGION() CV_INSTRUMENT_REGION()
CV_Assert(!_src.empty());
if(dcn <= 0) if(dcn <= 0)
dcn = dstChannels(code); dcn = dstChannels(code);

View File

@ -247,10 +247,14 @@ struct CvtHelper
{ {
CvtHelper(InputArray _src, OutputArray _dst, int dcn) CvtHelper(InputArray _src, OutputArray _dst, int dcn)
{ {
CV_Assert(!_src.empty());
int stype = _src.type(); int stype = _src.type();
scn = CV_MAT_CN(stype), depth = CV_MAT_DEPTH(stype); scn = CV_MAT_CN(stype), depth = CV_MAT_DEPTH(stype);
CV_Assert( VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) ); CV_Check(scn, VScn::contains(scn), "Invalid number of channels in input image");
CV_Check(dcn, VDcn::contains(dcn), "Invalid number of channels in output image");
CV_CheckDepth(depth, VDepth::contains(depth), "Unsupported depth of input image");
if (_src.getObj() == _dst.getObj()) // inplace processing (#6653) if (_src.getObj() == _dst.getObj()) // inplace processing (#6653)
_src.copyTo(src); _src.copyTo(src);