当前位置: 代码网 > it编程>编程语言>C/C++ > Ubuntu20.04 OpenCV详细安装教程(附多版本切换共存教程)

Ubuntu20.04 OpenCV详细安装教程(附多版本切换共存教程)

2024年07月28日 C/C++ 我要评论
opencv安装有两种方式:1.使用包管理器安装预编译版本(安装十分简单,但是,且没有扩展模块且不支持Qt窗口)2.从源码安装(比较复杂,但是推荐)

opencv安装有两种方式:

1.使用包管理器安装预编译版本(安装十分简单,但是版本只有4.2.0,且没有扩展模块且不支持qt窗口)

2.从源码安装(比较复杂,但是推荐)

1.安装预编译版本

sudo apt install libopencv-dev

这样就安装完成了

这种安装方法,默认把opencv相关文件放置在系统目录

2.从源码构建安装(重点)

1.opencv官网下载源码

官网下载地址icon-default.png?t=n7t8https://opencv.org/releases/

如上图所示,选择sources下载zip源码压缩包,下载完解压,如下图所示:

2.编译安装

安装所需工具

#更新apt可安装包列表
sudo apt update

#安装cmake和g++
sudo apt install -y cmake g++

#安装项目构建工具,有两个选择,make或ninja, ninja自动支持多线程,make得自己加-j选项,这里先全安装上
sudo apt install make ninja-build



使用cmake构建

#进入到源码目录
cd opencv-4.9.0

#cmake构建
cmake -b build -gninja -dcmake_install_prefix=~/lib/opencv4.9.0_install

命令解释:

        -b build :在当前目录创建一个build文件夹,然后构建到build文件夹里

        -gninja : 指定生成用ninja来构建的项目,默认是-gunix(用make构建)

        -dcmake_install_prefix=~/lib/opencv4.9.0_install : 指定安装目录,否则默认安装到系统目录:/usr/lib,usr/include,这里是多版本共存的关键,指定一个自定义的目录(最好别是系统目录),比如我就在~/lib/opencv4.9.0_install中

注意:该命令执行过程中可能会连外网下载本地缺失的文件,建议科学上网设置好https代理

cmake命令执行完毕后,build目录多了一大堆文件,如下图所示:

 继续在当前目录,然后执行命令:

cmake --build build/

 正式开始编译! 

编译时间较长,耐心等待......

编译完成后执行命令:

cmake --install build/

执行这个命令,将编译好的库和头文件以及cmake文件复制到之前指定的cmake_install_prefix里,如下图所示:

3.设置环境变量,切换版本

使用opencv一般搭配cmake来使用,所以选择opencv的工作可以通过设置cmake的环境变量实现。

cmake是通过find_package函数来实现查找包功能,而find_package函数又是通过设置的搜索路径来查找对应的库配置文件。具体可查看:cmake:指定find_package的搜索路径_find_package 指定路径-csdn博客文章浏览阅读1.4w次,点赞12次,收藏24次。find_package(opencv paths /opt/opencv no_default_path required)if (opencv_found) include_directories(${opencv_include_dirs}) message( ${opencv_libs})else() message("opencv not found, so we won't build the project.")en_find_package 指定路径https://blog.csdn.net/zhizhengguan/article/details/115207345

 概括一下就是:

演示一下:

1.设置<packagename>_dir

查看一下opencvconfig.cmake文件所在目录:

cmake_minimum_required(version 3.0)

project(demo)

set(opencv_dir "~/lib/opencv4.9.0_install/lib/cmake/opencv4") #对应上面刚查的目录

find_package(opencv 4.9 required)
message("find ${opencv_version}")

 cmake运行一下,看到输出即可。

2.添加-d选项指定目录

cmake_minimum_required(version 3.0)

project(demo)

# set(opencv_dir "~/lib/opencv4.9.0_install/lib/cmake/opencv4")

find_package(opencv 4.9 required)
message("find ${opencv_version}")

注释掉set命令,通过-d选项查找:

cmake -b build -dcmake_prefix_path=~/lib/opencv4.9.0_install

查找成功:

 

可以看到,支持子目录查找,就不用精确到具体文件目录了。

另外,在cmakelists.txt文件中也可以直接设置cmake_prefix_path:

cmake_minimum_required(version 3.0)

project(demo)

# set(opencv_dir "~/lib/opencv4.9.0_install/lib/cmake/opencv4")
set(cmake_prefix_path "~/lib/opencv4.9.0_install")

find_package(opencv 4.9 required)
message("find ${opencv_version}")

3.通过系统环境变量path查找 

gedit ~/.bashrc

在文件底部添加下面一段命令:

export path=~/lib/opencv4.9.0_install:$path

别忘了在当前终端source一下来重新执行.bashrc脚本,或者新打开一个终端会自动source :

source ~/.bashrc

path设置的目录支持递归查找

验证一下:

cmake_minimum_required(version 3.0)

project(demo)


find_package(opencv 4.9 exact required)
message("find ${opencv_version}")

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com