本人自学opencv接近一个月,在b站视频,官方文档和csdn反复横跳,在此将我的学习笔记进行总结归纳,欢迎初学者参考我的笔记~也期待大佬的指导~
目录
提示:以下是本篇文章正文内容
一、图像的读取 imread()
函数API:imread()
官方定义:
Mat imread( const String& filename, int flags = IMREAD_COLOR );
函数参数解释:
1.filename:所读取图片的路径。
- 直接右击图片,复制粘贴文件地址,但要注意将 ' \ ' 改成 ' / ' 。
- 路径错误时,不会报错,会返回一个None值。
2.flags:读取方式的标志。 默认值为以彩色通道加载图片,忽视透明度。
下面列举三种常用的读取方式的标志:
IMREAD_COLOR 以彩色通道加载图片,忽视透明度
IMREAD_GRAYSCALE 以灰度模式加载图片
IMREAD_UNCHANGED 包括alpha通道进行加载
以上三种标志分别可用1,0,-1进行代替。
函数使用:
- 用Mat类型接收
- Mat img=imread(“ 图像路径 ”)第二个参数不写默认为IMREAD_COLOR
代码演示:
Mat img = imread("C:/素材/1.jpg");
这样就能读取以下位置的图片
二、图像的显示 imshow()
函数API:imshow()
官方定义:
void imshow(const String& winname, InputArray mat);
参数解释:
1.winname:显示图像的窗口名字。以字符串类型表示,放在 “ ” 中。
2.mat:要加载的图像对象。
函数使用:
- 调用该函数,需要调用waitKey()给图像绘制留下时间,否则窗口无响应。很重要!!!拿小本本记下来!!!
- 该函数显示出的图像不可改变图像大小,只可输出八位图像。可搭配namedWindow()函数使用。
(两个函数的具体使用我放在第三标题内供大家食用。)
代码演示
接第一标题内的图片读取,我们把读取的图像显示出来
Mat img = imread("C:/素材/1.jpg");
imshow("Image",img);
waitKey(0);
三.与imshow()搭配使用的相关函数
(一)waitKey()
官方定义:
int waitKey(int delay = 0);
参数解释:
delay:延时值。默认值为0。
一个int类型的值。
为正数(>0)时表示为图片显示的时间,单位为毫秒。
否则(<=0)图像一直显示。0为表示一直显示的特殊值,一般用0表示图象一直显示。
函数使用:
在显示图像后必须使用waitKey()函数
(二)创建窗口namedWindow()
官方定义:
void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
参数解释:
1.winname:窗口名称,为字符串类型,放在 “ ” 中。
2.flags:窗口的标志,int型,每个标识都有一个数字可以代替。默认值为:WINDOW_AUTOSIZE
以下列举出窗口的标识:
标识 | 解释 | flags |
WINDOW_NORMAL | 用户无约束的改变窗口大小 也用于将全屏窗口切换为正常大小 | 0 |
WINDOW_AUTOSIZE | 用户无法调整窗口大小 大小受显示图像的限制 | 1 |
WINDOW_OPENGL | 支持OpenGL的窗口 | 4096 |
WINDOW_FULLSCREEN | 将窗口更改为全屏 | 1 |
WINDOW_FREERATIO | 图像尽可能多地拓展(无比率约束) | 256 |
WINDOW_KEEPRATIO | 图像比例不变 | 0 |
WINDOW_GUI_EXPANDED | 窗口可以添加状态栏和工具栏 | 0 |
WINDOW_GUI_NORMAL | 老式窗口 即没有状态栏和工具栏的图像窗口 | 16 |
函数使用
代码演示
Mat img = imread("C:/素材/1.jpg");
namedWindow("Image", WINDOW_NORMAL);
imshow("Image",img);
waitKey(0);
图像大小可以随意改变
总结
本章介绍了opencv读取(imread)和显示(imshow)图片的两个基础函数的参数释义和代码参考,以及相关函数。初学者一定要自己敲敲代码感受一下噢
欢迎大家在评论区进行指导和交流鸭!!!!(第一次发博客 不足之处希望大家告知)