opencv之imread函数

发布时间: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) ;
opencv之imread函数_第1张图片 lena-origin.jpg

 (b) 图像转为灰度图形式加载

Mat lena= imread("./lena.jpg", CV_LOAD_IMAGE_GRAYSCALE ) ;
imwrite("/mnt/hgfs/Vmshare/lena-gray.jpg" , lena) ;
opencv之imread函数_第2张图片 lena-gray.jpg

 

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号