目录
- 什么是OpenCV
- 安装OpenCV
-
- 1.下载安装包
- 2.解压缩
- 3.下载CMake并完成配置
- 4.下载依赖
- 5.编译并安装
- 6.OpenCV环境配置
- 代码示例
-
- 图片处理
- 视频处理
-
- 虚拟机获取摄像头权限
- 播放视频
- 摄像头录制
- 参考资料
什么是OpenCV
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux,Windows,Mac等操作系统上。
它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
在系统中安装了Opencv库后,我们就可以通过引入头文件的方式使用OpenCv中的各种算法,用于计算机视觉以及图像处理。
安装OpenCV
安装OpenCV的过程很复杂,可能会多次失败。建议有耐心多试几次。
- 系统:Linux(Ubuntu18.04.1)
- 软件:OpenCv
- 下载版本:4.6.0
1.下载安装包
下载地址:https://github.com/opencv/opencv/releases
3.下载CMake并完成配置
下载完成后,在进入之前解压的文件夹,创建并进入一个build文件夹。
使用以下指令配置cmake:
这里我参考了博客:https://blog.csdn.net/spiremoon/article/details/105812303
之前我照着老师给的参考博客进行下载,在完成所有安装操作后,输入打印OpenCv版本的指令时会提示以下 错:
原因是在完成安装后,OpenCv没有生成Opencv4.pc文件。在OpenCv4以前的版本是会自动生成该文件的。到了4版本,OpenCv默认不会自动生成.pc文件。因此在配置cmake时一定要带上如下参数:
表示开启生成配置文件的功能。
4.下载依赖
在这一步可能会出现问题,出现 错:“Unable to locate package libjasper-dev”
我最开始以为是Ubuntu镜像源的问题,于是我参考了以下博客,更换了Ubuntu的镜像源。
原博客:https://blog.csdn.net/laoluobo76/article/details/108302191
使用以下指令,将下载源替换成清华大学镜像:
但是替换镜像源后依旧会继续 错。因此我又再 上搜索了很久,找到了这篇博客:
https://blog.csdn.net/qq_44830040/article/details/105961295
按照这篇博客的说法,我执行了以下指令:
于是libjasper-dev也成功下载了。
5.编译并安装
在build下,使用以下指令进行编译:
输入指令后,会看到程序从0%开始进行编译。现在要做的是等待编译完成。这个过程非常长。想要加快速度,可以这样打:
这是使用4个线程进行编译,可以一定程度上加快编译速度。
但是笔者在使用该指令的时候出现了问题。在编译途中提示部分指令执行失败,然后整个虚拟机进入卡死状态,并在几分钟后恢复正常并提示编译失败。笔者重复试验了好几次都是这样。因此如果你使用多线程编译出现跟我一样的情况时,请老老实实使用原始指令编译。
在编译完成后,使用指令:
完成安装。
6.OpenCV环境配置
环境配置的过程参照了此博客:https://blog.csdn.net/ssj925319/article/details/109231145
原博客的OpenCV是3版本的,但是在配置环境这一点两个版本之间几乎没有什么区别。
修改 opencv.conf 文件,添加 opencv 库的安装路径:/usr/local/lib。这个路径是配置cmake的时候配置的。
执行以下指令:
填入/usr/local/lib并保存退出。
更新系统共享链接库:
配置 bash ,修改 bash.bashrc 文件,在文件末尾加上这一段:
保存退出,然后执行如下命令使得配置生效:
最后查看OpenCV4版本 ,如果能够查看成功,说明OpenCV安装并配置成功。
输入以下指令:
之所以会 Package xxx was not found in the pkg-config search path,是因为在pkg-config search path下没有找到你输入的包名xxx。要么你输错名字(opencv与opencv4),要么没生成pc文件。
下面几张图,我通过修改cp文件名字,模拟需要的cp文件不存在,验证 错原因。
代码示例
图片处理
创建好项目路径,在路径下创建一个cpp文件。
这里有一段代码,用于将图像灰化。在test.cpp中粘贴下面这段代码:
根据你写的文件路径,在对应的位置准备相应的图片文件(我这里是当前路径下,一张名为mopemope的jpeg文件)
注意,笔者在编译成功之前也有尝试按照https://blog.csdn.net/ssj925319/article/details/109231145中的指令进行编译,即在g++ .cpp -o .out指令后面加上:
但是不知道为什么会 错,如下图所示:
先生买朵小花吧()
视频处理
虚拟机获取摄像头权限
参照https://blog.csdn.net/ssj925319/article/details/109231145
使用快捷键 Win + R ,输入 services.msc ,并回车。
找到程序VMware Authorization Service,确保已经启动。
播放视频
创建一个新的cpp文件:
在文件中输入以下代码:
和图像处理一样编译:
执行可执行文件,系统播放视频:
如果有以下 错:
参考资料
- https://github.com/opencv/opencv/releases
- https://blog.csdn.net/spiremoon/article/details/105812303
- https://blog.csdn.net/laoluobo76/article/details/108302191
- https://blog.csdn.net/qq_44830040/article/details/105961295
- https://blog.csdn.net/ssj925319/article/details/109231145
文章知识点与官方知识档案匹配,可进一步学习相关知识OpenCV技能树OpenCV基础OpenCV安装11061 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!