一.OpenCV加载图像(用cv::imread)
Mat cv::imread(const String & filename, int flags = IMREAD_COLOR);
参数 filename:指定希望读取图像的路径,可以为相对路径和绝对路径
参数 flags:指定读取图像的格式。该值枚举自 cv::ImreadModes,默认值为1。
imread函数功能是加载图像文件成为一个Mat对象
第一个参数表示图像文件的路径名
第二个参数,表示加载的图像是什么类型,支持常见的三个参数值
IMREAD_UNCHANGED (<0) 表示加载原图,不做任何改变
IMREAD_GRAYSCALE ( 0)表示把原图作为灰度图像加载进来
IMREAD_COLOR (>0) 表示把原图作为RGB图像加载进来
注意:OpenCV支持JPG、PNG、TIFF等常见格式图像文件加载,如果图像不能被读取(因为文件丢失、权限不当、不支持或无效格式),函数返回一个空矩阵(Mat::data==NULL)
imread函数第二个参数,图像格式如下:
枚举类型 枚举值 类型描述
IMREAD_UNCHANGED -1 将加载的图像按原样返回,包括alpha通道。会忽略EXIF方向
IMREAD_GRAYSCALE 0 编解码器内部将图像转换为单通道灰度图像返回
IMREAD_COLOR 1 将图像转换为RGB通道排列的彩色图像,该值是函数的默认值
IMREAD_ANYDEPTH 2 如果图像具有深度,则返回对应的16/32位图像。否则转换为8位返回
IMREAD_ANYCOLOR 4 图像以任何可能的颜色读取
IMREAD_LOAD_GDAL 8 使用gdal驱动程序加载图像
IMREAD_REDUCED_GRAYSCALE_2 16 将图像转换为单通道的灰度图像,图像的尺寸缩小为1/2
IMREAD_REDUCED_COLOR_2 17 将图像转换为RGB通道排列的彩色图像,图像尺寸缩小为1/2
IMREAD_REDUCED_GRAYSCALE_4 32 将图像转换为单通道的灰度图像,图像的尺寸缩小为1/4
IMREAD_REDUCED_COLOR_4 33 将图像转换为RGB通道排列的彩色图像,图像尺寸缩小为1/4
IMREAD_REDUCED_GRAYSCALE_8 64 将图像转换为单通道的灰度图像,图像的尺寸缩小为1/8
IMREAD_REDUCED_COLOR_8 65 将图像转换为RGB通道排列的彩色图像,图像尺寸缩小为1/8
IMREAD_IGNORE_ORIENTATION 128 不要根据EXIF的方向标志旋转图像