Ubuntu下安装OpenCV4.6.0并使用

目录

  • 什么是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

Ubuntu下安装OpenCV4.6.0并使用

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安装并配置成功。

输入以下指令:

Ubuntu下安装OpenCV4.6.0并使用

之所以会报Package xxx was not found in the pkg-config search path,是因为在pkg-config search path下没有找到你输入的包名xxx。要么你输错名字(opencv与opencv4),要么没生成pc文件。

下面几张图,我通过修改cp文件名字,模拟需要的cp文件不存在,验证报错原因。

Ubuntu下安装OpenCV4.6.0并使用

代码示例

图片处理

创建好项目路径,在路径下创建一个cpp文件。

这里有一段代码,用于将图像灰化。在test.cpp中粘贴下面这段代码:

根据你写的文件路径,在对应的位置准备相应的图片文件(我这里是当前路径下,一张名为mopemope的jpeg文件)

Ubuntu下安装OpenCV4.6.0并使用

注意,笔者在编译成功之前也有尝试按照https://blog.csdn.net/ssj925319/article/details/109231145中的指令进行编译,即在g++ .cpp -o .out指令后面加上:

但是不知道为什么会报错,如下图所示:

Ubuntu下安装OpenCV4.6.0并使用

先生买朵小花吧()

视频处理

虚拟机获取摄像头权限

参照https://blog.csdn.net/ssj925319/article/details/109231145

使用快捷键 Win + R ,输入 services.msc ,并回车。

找到程序VMware Authorization Service,确保已经启动。

Ubuntu下安装OpenCV4.6.0并使用

播放视频

创建一个新的cpp文件:

在文件中输入以下代码:

和图像处理一样编译:

Ubuntu下安装OpenCV4.6.0并使用

执行可执行文件,系统播放视频:

Ubuntu下安装OpenCV4.6.0并使用

编译一下:

Ubuntu下安装OpenCV4.6.0并使用

如果有以下报错:

Ubuntu下安装OpenCV4.6.0并使用

参考资料

  1. https://github.com/opencv/opencv/releases
  2. https://blog.csdn.net/spiremoon/article/details/105812303
  3. https://blog.csdn.net/laoluobo76/article/details/108302191
  4. https://blog.csdn.net/qq_44830040/article/details/105961295
  5. https://blog.csdn.net/ssj925319/article/details/109231145

文章知识点与官方知识档案匹配,可进一步学习相关知识OpenCV技能树OpenCV基础OpenCV安装11061 人正在系统学习中

来源:终极末影龙

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月18日
下一篇 2022年8月18日

相关推荐