imread

头文件:opencv2/highgui/highgui.hpp
作用:imread函数的作用非常简单,从函数的名称也可以看出来,imreadimage read的缩写,即图像读取的意思
函数原型:

Mat cv::imread(const String&filename,int flags=IMREAD_COLOR)
  • 返回值 Mat 类型, 即返回读取的图像,读取图像失败时返回一个空的矩阵对象(Mat::data == NULL)
  • 参数1 filename, 读取的图片文件名,可以使用相对路径或者绝对路径,但必须带完整的文件扩展名(图片格式后缀)
  • 参数2 flags, 一个读取标记,用于选择读取图片的方式,默认值为IMREAD_COLOR,flag值的设定与用什么颜色格式读取图片有关。如果flag>0 返回一个3通道的彩色图像;flag=0返回灰度图像;flag<0返回包含Alpha通道的加载的图像。

参数2 补充:

C++定义说明
IMREAD_UNCHANGED =-1如果设置,则按原样返回加载的图像(使用Alpha通道,否则会被裁剪,在新版本中废弃)
IMREAD_GRAYSCALE =0如果设置,则始终将图像转换为单通道灰度图像(编解码器内部转换)
IMREAD_COLOR =1如果设置,请始终将图像转换为3通道BGR彩色图像
IMREAD_ANYDEPTH =2如果设置,则在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8
IMREAD_ANYCOLOR =4如果设置,则以任何可能的颜色格式读取图像
IMREAD_LOAD_GDAL如果设置,使用gdal驱动程序加载图像
IMREAD_REDUCED_GRAYSCALE_2如果设置,则始终将图像转换为单通道灰度图像,图像尺寸减小1/2
IMREAD_REDUCED_COLOR_2如果设置,则始终将图像转换为3通道BGR彩色图像,图像尺寸减小1/2
IMREAD_REDUCED_GRAYSCALE_4如果设置,则始终将图像转换为单通道灰度图像,图像尺寸减小1/4
IMREAD_REDUCED_COLOR_4如果设置,则始终将图像转换为3通道BGR彩色图像,图像尺寸减小1/4
IMREAD_REDUCED_GRAYSCALE_8如果设置,则始终将图像转换为单通道灰度图像,图像尺寸减小1/8
IMREAD_REDUCED_COLOR_8如果设置,则始终将图像转换为3通道BGR彩色图像,图像尺寸减小1/8
IMREAD_IGNORE_ORIENTATION如果设置,请不要根据EXIF的方向标志旋转图像

示例:

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
int main(int argc,char **argv){
    cv::Mat image = cv::imread("C:/Users/Administrator/Desktop/2-1.jpg",cv::IMREAD_GRAYSCALE);
    cv::imshow("窗口名", image);
    cv::waitKey(0);
    return 0;
}
Last modification:August 10th, 2020 at 02:59 pm