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

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

文章目录

  • 在Ubuntu系统虚拟机下使用opencv完成基本操作
  • 一、编写一个打开图片进行特效显示的代码 test1.cpp
  • 二、使用opencv库编写打开摄像头压缩视频的程序
  • 三、使用opencv对视频的操作


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

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

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

创建一个 test3.cpp 文件。
在Ubuntu系统虚拟机下使用opencv完成基本操作_第2张图片
编译 test3.cpp 文件,输出结果
在Ubuntu系统虚拟机下使用opencv完成基本操作_第3张图片

三、使用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就可以了。
修改如下
之前:
请添加图片描述
修改后:
请添加图片描述


你可能感兴趣的:(opencv,ubuntu,计算机视觉)