发布时间:2022-08-18 18:05
原型:Mat imread( const String& filename, int flags );
参数1:文件名路径
参数2:载入标识;它指定一个加载图像的类型;默认为1;
flags 取值:可以是以下枚举类型:
enum
{
/* 新版本中已经倍废置 */
CV_LOAD_IMAGE_UNCHANGED =-1,
/* 始终将图像转成灰度再返回*/
CV_LOAD_IMAGE_GRAYSCALE =0,
/* 转换图像到彩色再返回 */
CV_LOAD_IMAGE_COLOR =1,
/* 取该标识且载入的图像深度为16或32位,就返回对应深度的图像,否则,转换为8位图像再返回;*/
CV_LOAD_IMAGE_ANYDEPTH =2,
/* ?, any color */
CV_LOAD_IMAGE_ANYCOLOR =4,
/* ?, no rotate */
CV_LOAD_IMAGE_IGNORE_ORIENTATION =128
};
(1) 输入有冲突情况,如CV_LOAD_IMAGE_COLOR | CV_LOAD_IMAGE_ANYCOLOR 时,将采用较小的数字值,将载入3通道图;
(2) 若希望载入最真实的图,选择CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR ;
(3) 由于flag是int型变量,故有:
flag > 0 返回一个3通道的彩色图像;
flag = 0 返回灰色图像;
flag < 0 返回包含Alpha通道的加载图像;
代码举例:
(a) 载入最真实的图
Mat lena= imread("./lena.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR) ;
imwrite("/mnt/hgfs/Vmshare/lena-origin.jpg" , lena) ;
(b) 图像转为灰度图形式加载
Mat lena= imread("./lena.jpg", CV_LOAD_IMAGE_GRAYSCALE ) ;
imwrite("/mnt/hgfs/Vmshare/lena-gray.jpg" , lena) ;