opencv之imread函数

本文详细解读了Matimread函数的参数设置,包括文件名路径、加载标识(如CV_LOAD_IMAGE_COLOR、CV_LOAD_IMAGE_GRAYSCALE等)以及它们的含义和使用场景。特别介绍了如何根据需求选择合适的标志组合,如载入最真实的图像或转换颜色模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原型: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) ;
lena-origin.jpg

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

Mat lena= imread("./lena.jpg", CV_LOAD_IMAGE_GRAYSCALE ) ;
imwrite("/mnt/hgfs/Vmshare/lena-gray.jpg" , lena) ;
lena-gray.jpg

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天未及海宽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值