opencv cvtColor断言失败了C ++

时间:2014-06-27 02:50:25

标签: c++ xcode opencv

当我尝试将输入图像转换为灰度时,我收到断言错误。我见过 围绕同一问题的很多帖子但似乎都没有给出错误的原因。 在下面的代码中,输入为NOT NULL并且已从图像中加载" test.jpg"在我的驱动器上 使用imgRead。

Mat img_gray;
cvtColor(input, img_gray, CV_BGR2GRAY);

断言错误:

OpenCV自动车牌识别 使用文件:test OpenCV错误:cvtColor中的断言失败(scn == 3 || scn == 4),文件/opt/local/var/macports/build/_opt_mports_dports_graphics_opencv/opencv/work/opencv-2.4.9/modules/imgproc/src/ color.cpp,第3737行 libc ++ abi.dylib:terminate调用抛出异常

代码取自https://github.com/MasteringOpenCV/code/blob/master/Chapter5_NumberPlateRecognition/DetectRegions.cpp

查看第72行。

我尝试了多张没有运气的照片。任何建议,将不胜感激。 感谢

1 个答案:

答案 0 :(得分:4)

该断言消息表示您传入的图像不是3或4通道。 例如。如果传入单通道灰度图像,它将失败。

尝试加入

std :: cerr<< “image chans:”<< image.channels()<<的std :: ENDL;

cvtColor()之前。我确信它不会输出3或4。