您需要知道输入图像的通道数.cvtColor希望它有3个或4个通道.使用渠道()来确定您拥有的内容.以下信息直接来自以下答案:我可以确定cv :: Mat Opencv中的通道数
cv::Mat img(1,1,CV_8U,cvScalar(0));
std::cout<<img.channels();
Run Code Online (Sandbox Code Playgroud)
输出:
1
Run Code Online (Sandbox Code Playgroud)
这是渠道数量.
图像为空时也会发生此错误.您可以使用以下方式检查:
img.empty();
Run Code Online (Sandbox Code Playgroud)
来源:openCV错误:断言失败(scn == 3 || scn == 4)