如何打印cvMatRGBBGR还是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/

10-10 09:52