打印cvMat频道

时间:2014-04-19 00:51:10

标签: c++ opencv

如何打印cvMatRGBBGR还是GRAY?我需要这样做的原因是因为我需要将图片转换为GRAY并在尝试CV_RGB2GRAY

时遇到错误

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

1 个答案:

答案 0 :(得分:5)

您需要知道输入图像的通道数。 cvtColor希望它有3个或4个通道。使用渠道()来确定您拥有的内容。以下信息直接取自以下答案:Can I determine the number of channels in cv::Mat Opencv

cv::Mat img(1,1,CV_8U,cvScalar(0));
std::cout<<img.channels();

输出:

1

这是频道数。

图像为空时也会发生此错误。您可以使用以下方式检查:

img.empty();

来源:openCV Error: Assertion failed (scn == 3 || scn == 4)