opencv之imread函数

原型: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函数

lena-origin.jpg

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

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

opencv之imread函数

lena-gray.jpg

Original: https://blog.csdn.net/qq_39048131/article/details/125694009
Author: 天未及海宽
Title: opencv之imread函数

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/532815/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球