前言:
笔者目前在校本科大二,有志于进行计算机视觉、计算机图形学方向的研究,准备系统性地、扎实的学习一遍OpenCV的内容,故记录学习笔记,同时,由于笔者同时学习数据结构、机器学习等知识,会尽量根据自己的理解,指出OpenCV的应用,并在加上自己理解的前提下进行叙述。
若有不当之处,希望各位批评、指正。
本篇学习内容:
1.图像窗口创建、滑动条创建
2.图片的保存
1.图像窗口创建、滑动条创建
1.1 图像窗口创建
上次提到,在调用imshow()函数的时候,如果没有在此之前创建同名的窗口,就会以WINDOW_AUTOSIZE标志创建一个窗口,显示图像的原始大小;如果创建了图像窗口,那么会缩放图像以适应窗口属性。
然而在进行多窗口的任务时,可能需要给不同的窗口适配不同的模式。所以,我们可以通过namedWindow()来创建窗口。
在本篇及以后,在提及新函数时,会将函数原型单独写在一个代码块中。
void cv::namedWindow (
const String & winname,
int flags = WINDOW_AUTOSIZE )
第一个参数:窗口名
第二个参数:窗口模式。OpenCV提供了多种窗口模式,下面贴一下官方文档截图。
做一些介绍:
WINDOW_NORMAL代表可以随意缩放图像窗口。
WINDOW_AOTOSIZE是默认模式,窗口大小与输入图像一致。
WINDOW_OPENGL支持OPENGL。
WINDOW_FULLSCREEN全屏化窗口。
有个奇怪的地方,我在实际测试时,WINDOW_FULLSCREEN并没有让窗口全屏化,WINDOW_KEEPRATIO也没有限制长宽的比例。
然而这并不要紧。WINDOW_FULLSCREEN的操作可以通过setWindowProperty()函数代替。代码如下:
namedWindow("test01",WINDOW_NORMAL);
Mat a = imread("E:/program/x.jpg");
imshow("test01", a);
setWindowProperty("test01", WND_PROP_FULLSCREEN, WINDOW_FULLSCREEN);
waitKey

本文介绍了大学生如何从头开始学习OpenCV,包括创建自定义图像窗口、添加滑动条调控参数以及图片的保存技巧,通过实例展示了窗口模式、滑动条回调和不同图片质量的保存方法。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



