如何打印cvMat
是RGB
,BGR
还是GRAY
?我需要执行此操作的原因是因为我需要将图像转换为GRAY
并在尝试CV_RGB2GRAY
时遇到诸如此类的错误OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor
最佳答案
您需要知道输入图像具有的通道数。 cvtColor希望它具有3或4个通道。使用channels()来确定您所拥有的。以下信息直接从以下答案中获取: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
这是 channel 数。
当图像为空时,也会发生此错误。您可以使用以下方法进行检查:
img.empty();
资料来源:openCV Error: Assertion failed (scn == 3 || scn == 4)
关于c++ - 打印cvMat channel ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23164517/