在Ubuntu系统虚拟机下使用opencv完成基本操作

在Ubuntu系统虚拟机下使用opencv完成基本操作

文章目录

一、编写一个打开图片进行特效显示的代码 test1.cpp

在Ubuntu系统虚拟机下使用opencv完成基本操作
那么 gcc test1.cpp -o test1 pkg-config --cflags --libs opencv是如何获得opencv头文件、链接lib库文件的路径的?
答案是–cflags用来指定程序在编译时所需要头文件所在的目录;–libs是指定程序在链接时所需要的动态链接库的目录
执行文件
在Ubuntu系统虚拟机下使用opencv完成基本操作

; 二、使用opencv库编写打开摄像头压缩视频的程序

创建一个 test3.cpp 文件。

在Ubuntu系统虚拟机下使用opencv完成基本操作
编译 test3.cpp 文件,输出结果
在Ubuntu系统虚拟机下使用opencv完成基本操作

三、使用opencv对视频的操作

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

在Ubuntu系统虚拟机下使用opencv完成基本操作
在示例代码1第9行的while循环中,Mat是一个什么数据结构? 为什么一定要加一句waitKey延时代码,删除它行不行?

Mat是一个类。由两部分数据组成:矩阵头(包括矩阵尺寸、存储方法、存储地址等信息)和一个指向所有像素值的矩阵(根据所选存储方法不同,矩阵可以是不同的维数)的指针。waitKey()–这个函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下 键,则接续等待(循环),不能删除,因为一般在imshow()后要使用waitKey(),给图像绘制留下时间,不然窗口会出现无响应情况,并且图像无法显示出来。

示例代码1代码会在while循环中一直运行,你如果试图用鼠标关闭图像显示窗口,会发现始终关不掉。需要用键盘Ctrl+C 强制中断程序,非常不友好。如何改进?

在while循环里,增加一个对waitkey这个延时函数的if语句,让它可以在我们按Esc(ASCII码为27)后break就可以了。
修改如下
之前:

在Ubuntu系统虚拟机下使用opencv完成基本操作
修改后:
在Ubuntu系统虚拟机下使用opencv完成基本操作

Original: https://blog.csdn.net/the_same_bug/article/details/127011036
Author: the_same_bug
Title: 在Ubuntu系统虚拟机下使用opencv完成基本操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/702714/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球