打印cvMat频道

Cli*_*lip 1 c++ opencv

我怎样才能打印是否cvMatRGB,BGR还是GRAY?我需要这样做的原因是因为我需要将图像转换为GRAY并且在尝试时已经给出了这样的错误CV_RGB2GRAY

OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor

Phi*_*gan 5

您需要知道输入图像的通道数.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)