如何确定输入图像通道的数量?

时间:2014-07-23 05:43:51

标签: opencv

要读取图像文件,我必须使用

Mat img = imread(file,CV_LOAD_IMAGE_COLOR);

Mat img = imread(file,CV_LOAD_IMAGE_GRAYSCALE);

这意味着我必须事先知道该文件是包含彩色还是单色图像。是不是有办法提前知道通道数,以便我可以根据通道数应用读取的图像?

1 个答案:

答案 0 :(得分:1)

根据imread documentation,您应该使用<0 Return the loaded image as is (with alpha channel)

highui_c.h中有这样的定义:

CV_LOAD_IMAGE_UNCHANGED  =-1,

奇怪的是imread documentation中没有提及CV_LOAD_IMAGE_UNCHANGED,但在one of the OpenCV tutorials中使用了。 这将做你想要的:

Mat img = imread(file, CV_LOAD_IMAGE_UNCHANGED);