在Ubuntu系统虚拟机下使用opencv完成基本操作
文章目录
一、编写一个打开图片进行特效显示的代码 test1.cpp

那么 gcc test1.cpp -o test1 pkg-config --cflags --libs opencv是如何获得opencv头文件、链接lib库文件的路径的?
答案是–cflags用来指定程序在编译时所需要头文件所在的目录;–libs是指定程序在链接时所需要的动态链接库的目录
执行文件

二、使用opencv库编写打开摄像头压缩视频的程序
创建一个 test3.cpp 文件。

编译 test3.cpp 文件,输出结果

三、使用opencv对视频的操作
如果要求打开你硬盘上一个视频文件来播放,请问示例代码1第7行代码如何修改?
只需要把capture() 中的0换成视频文件的地址
我的上一个视频文件名为:SCP.mp4

在示例代码1第9行的while循环中,Mat是一个什么数据结构? 为什么一定要加一句waitKey延时代码,删除它行不行?
Mat是一个类。由两部分数据组成:矩阵头(包括矩阵尺寸、存储方法、存储地址等信息)和一个指向所有像素值的矩阵(根据所选存储方法不同,矩阵可以是不同的维数)的指针。waitKey()–这个函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下 键,则接续等待(循环),不能删除,因为一般在imshow()后要使用waitKey(),给图像绘制留下时间,不然窗口会出现无响应情况,并且图像无法显示出来。
示例代码1代码会在while循环中一直运行,你如果试图用鼠标关闭图像显示窗口,会发现始终关不掉。需要用键盘Ctrl+C 强制中断程序,非常不友好。如何改进?
在while循环里,增加一个对waitkey这个延时函数的if语句,让它可以在我们按Esc(ASCII码为27)后break就可以了。
修改如下
之前:

修改后:

本文介绍了在Ubuntu虚拟机中使用OpenCV进行图像处理的基本操作,包括编写代码打开图片并应用特效,利用OpenCV库创建程序打开摄像头并压缩视频,以及如何操作本地视频文件。在程序中,waitKey()函数用于延迟显示,确保imshow()的正常工作,删除会导致窗口无响应。通过在while循环中添加条件判断,可以实现按Esc键退出程序,提高用户体验。
1847

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



