要读取图像文件,我必须使用
Mat img = imread(file,CV_LOAD_IMAGE_COLOR);
或
Mat img = imread(file,CV_LOAD_IMAGE_GRAYSCALE);
这意味着我必须事先知道该文件是包含彩色还是单色图像。是不是有办法提前知道通道数,以便我可以根据通道数应用读取的图像?
答案 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);