文章目录
- 前言
- 一、 函数解析
- 1、imread(读取图片)
- 2、imshow(显示图片)
- 二、示例
- 三、结果
- 四、官方教程
前言
最近心血来潮,想具体的去学习一下图像处理,所以报了知识星球的一个OpenCV研习社,将自己每天的学习,分享一下。写个 blog 加深一下知识。
一、 函数解析
1、imread(读取图片)
CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );参数一:加载的文件路径
参数二:读取图片的样式(省略的话 默认 IMREAD_COLOR)功能:从文件加载图像
属性 | 数值 | 样式 |
---|
IMREAD_UNCHANGED | -1 | 按原样返回加载的图像(使用Alpha通道,否则会被裁剪) |
IMREAD_GRAYSCALE | 0 | 始终将图像转换为单通道灰度图像 |
IMREAD_COLOR | 1 | 将图像转换为3通道BGR彩色图像 |
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 | 将图像转换为3通道BGR彩色图像,图像尺寸减小1/2 |
IMREAD_REDUCED_GRAYSCALE_4 | 32 | 将图像转换为单通道灰度图像,图像大小减少1/4。 |
IMREAD_REDUCED_COLOR_4 | 33 | 将图像转换为3通道BGR彩色图像,图像尺寸减小1/4 |
IMREAD_REDUCED_GRAYSCALE_8 | 64 | 将图像转换为单通道灰度图像,图像尺寸减小1/8 |
IMREAD_REDUCED_COLOR_8 | 65 | 将图像转换为3通道BGR彩色图像,图像尺寸减小1/8 |
IMREAD_IGNORE_ORIENTATION | 128 | 如果设置,不能根据EXIF的方向标志旋转图像 |
2、imshow(显示图片)
CV_EXPORTS_W void imshow(const String& winname, InputArray mat);参数一:需要显示在哪个窗口的名称
参数二:要显示的图像功能:在指定的窗口中显示图像
二、示例
#include
#include using namespace cv; //OpenCV标准库
using namespace std; //C++标准程序库中的所有标识符都被定义于一个名为std的namespace中int main(int argc, char* argv[])
{//这里的路径一定要加双斜杠 \\ 或者 单斜杠 /,不然读不出来图片,\ 为转义字符Mat src = imread("F:/Cvimage/test.png", IMREAD_GRAYSCALE);//判断一下,看是否读取到图片if (src.empty()){printf("could not load image... \n");return -1;}//创建一个窗口,窗口不能改变大小,大小由加载的图片决定namedWindow("input", WINDOW_AUTOSIZE);//将图片显示在窗口上(窗口名称为 input)imshow("input", src);//等待用户操作,设为 0 则会一直等待waitKey(0);return 0;
}
三、结果
女神镇楼!
原图:
四、官方教程
传送门:官方教程 ---- imread
传送门:官方教程 ---- imshow