【发布时间】:2014-07-23 05:43:50
【问题描述】:
要读取图像文件,我必须使用其中一个
Mat img = imread(file,CV_LOAD_IMAGE_COLOR);
或
Mat img = imread(file,CV_LOAD_IMAGE_GRAYSCALE);
这意味着我必须提前知道文件是包含彩色图像还是单色图像。有没有办法提前知道通道数,以便我可以根据通道数应用读取的图像?
【问题讨论】:
标签: opencv
要读取图像文件,我必须使用其中一个
Mat img = imread(file,CV_LOAD_IMAGE_COLOR);
或
Mat img = imread(file,CV_LOAD_IMAGE_GRAYSCALE);
这意味着我必须提前知道文件是包含彩色图像还是单色图像。有没有办法提前知道通道数,以便我可以根据通道数应用读取的图像?
【问题讨论】:
标签: opencv
根据imread documentation,你应该使用<0 Return the loaded image as is (with alpha channel)。
highui_c.h 中有这样的定义:
CV_LOAD_IMAGE_UNCHANGED =-1,
奇怪的是 CV_LOAD_IMAGE_UNCHANGED 在imread documentation 中没有提到,但在one of the OpenCV tutorials 中使用。 这会做你想做的事:
Mat img = imread(file, CV_LOAD_IMAGE_UNCHANGED);
【讨论】: