当前位置: 首页 > wzjs >正文

无锡网站建设推广服务上海最新发布最新

无锡网站建设推广服务,上海最新发布最新,重庆网站建设狐灵传媒,张店学校网站建设方案引言 在图像处理与计算机视觉开发中,OpenCV 是不可或缺的基础库。然而,Ubuntu 20.04 默认的 APT 仓库只提供 OpenCV 4.2.0 版本,对于需要使用 OpenCV ≥ 4.5 的开发者(如 opencv-wechat-qrcode, dnn_superres, G-API 模块等&…

引言

在图像处理与计算机视觉开发中,OpenCV 是不可或缺的基础库。然而,Ubuntu 20.04 默认的 APT 仓库只提供 OpenCV 4.2.0 版本,对于需要使用 OpenCV ≥ 4.5 的开发者(如 opencv-wechat-qrcode, dnn_superres, G-API 模块等)来说,系统源版本显然无法满足需求。
我在实际项目开发中也遇到了这个问题:系统自带 OpenCV 4.2 无法满足我的需求,而升级系统或使用非官方源又存在风险。因此,我选择通过源码自行编译 OpenCV 4.5.4,并实现与系统版本共存且可灵活切换。
这篇博客将完整记录我的配置流程,帮助你在 Ubuntu 20.04 下:

✅ 成功编译安装 OpenCV 4.5.4 到 /opt 等独立路径

✅ 保留系统 APT 安装的 OpenCV 4.2(不破坏原系统)

✅ 实现 C++/Python 下的 版本灵活切换

一、系统默认 OpenCV 版本问题

Ubuntu 20.04 默认通过以下命令安装 OpenCV:

sudo apt install libopencv-dev python3-opencv

对应版本:

  • C++: OpenCV 4.2.0

  • Python: cv2 绑定也是 4.2.0

这对于需要使用 4.5 及以上新功能的用户来说,限制非常大。例如:

  • cv2.dnn_superres 模块在 4.3 后才加入

  • opencv-wechat-qrcode 仅在 4.5 后可用

  • 更高版本 dnn 支持 ONNX/YOLOX 更完整

二、OpenCV 4.5.4 编译安装步骤

1、安装依赖项

sudo apt update
sudo apt install -y build-essential cmake git pkg-config \libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev \libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev \libopenexr-dev libeigen3-dev libdc1394-22-dev libqt5opengl5-dev qtbase5-dev

2、下载源码(含 contrib)

mkdir -p ~/SoftWare && cd ~/SoftWare# OpenCV 主仓库
wget -O opencv-4.5.4.zip https://github.com/opencv/opencv/archive/4.5.4.zip
unzip opencv-4.5.4.zip# contrib 模块
wget -O opencv_contrib-4.5.4.zip https://github.com/opencv/opencv_contrib/archive/4.5.4.zip
unzip opencv_contrib-4.5.4.zip

3、编译配置

cd ~/SoftWare/opencv-4.5.4
mkdir build && cd build
cmake .. 
-DCMAKE_BUILD_TYPE=Release 
-DCMAKE_INSTALL_PREFIX=/opt/opencv-4.5.4 
-DOPENCV_EXTRA_MODULES_PATH=~/SoftWare/opencv_contrib-4.5.4/modules 
-DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF 
-DWITH_QT=ON -DWITH_OPENGL=ON -DWITH_TBB=ON 
-DOPENCV_GENERATE_PKGCONFIG=ON
参数含义与用途
cmake ..使用上一级目录(源码根)为输入,生成构建配置。一般在 opencv-4.5.4/build 中执行
-DCMAKE_BUILD_TYPE=Release设置构建类型为 Release(开启编译器优化,如 -O3),通常用于生产部署而非调试
-DCMAKE_INSTALL_PREFIX=/opt/opencv-4.5.4指定安装路径(而非默认的 /usr/local),这样就能与系统 apt 安装的 OpenCV 并存
-DOPENCV_EXTRA_MODULES_PATH=~/SoftWare/opencv_contrib-4.5.4/modules添加 OpenCV Contrib 模块支持,如 xfeatures2d, aruco, sfm, viz
-DBUILD_EXAMPLES=OFF不编译 opencv/samples 中的演示示例,节省时间和磁盘空间
-DBUILD_TESTS=OFF不编译 OpenCV 内建测试(gtest),一般只有开发者才需要
-DBUILD_PERF_TESTS=OFF不编译性能测试模块,除非你要 benchmark OpenCV
-DWITH_QT=ON启用 Qt 支持(用于高质量 GUI 显示,替代原生 HighGUI)
注意:依赖 libqt5
-DWITH_OPENGL=ON启用 OpenGL 加速显示(搭配 GUI 更顺滑,支持 cv::viz, imshow 等)
-DWITH_TBB=ON启用 Intel TBB 多线程加速(如图像并行处理、滤波等)
要求系统安装 libtbb-dev
-DOPENCV_GENERATE_PKGCONFIG=ON启用 pkg-config 安装支持,可通过pkg-config --modversion opencv4查询到OpenCV的版本

4、编码安装

make -j$(nproc)
sudo make install

此时,OpenCV 4.5.4 会被完整安装到 /opt/opencv-4.5.4,不会干扰系统原生 OpenCV 4.2。

三、多版本共存与切换方法

1、配置环境变量(建议写入 ~/.bashrc)

gedit ~/.bashrc#让 CMake 中的 find_package(OpenCV) 找到 4.5.4 的配置。
export OpenCV_DIR=/opt/opencv-4.5.4 #让 CMake 优先在 /opt 查找 OpenCV 的 include 和 lib。
export CMAKE_PREFIX_PATH=/opt/opencv-4.5.4:$CMAKE_PREFIX_PATH #让 pkg-config 正确输出 4.5.4 的版本和编译参数。
export PKG_CONFIG_PATH=/opt/opencv-4.5.4/lib/pkgconfig:$PKG_CONFIG_PATH#运行 C++ 可执行程序时能正确加载 4.5.4.so 动态库。
export LD_LIBRARY_PATH=/opt/opencv-4.5.4/lib:$LD_LIBRARY_PATH#让 Python 3.8 能找到你自己编译的 cv2.so。
(可选)export PYTHONPATH=/opt/opencv-4.5.4/lib/python3.8/dist-packages/cv2/python-3.8:$PYTHONPATH

然后:

source ~/.bashrc

2、检察当前使用的版本

# C++ 编译器版本确认
pkg-config --modversion opencv4   # 输出:4.5.4
🔍 作用:
查询当前系统中 C++ 编译时使用的 OpenCV 版本(通过 pkg-config 机制)。📚 原理:
pkg-config 是 C/C++ 编译工具链中的一个工具,它根据 .pc 文件提供库的头文件路径、库路径、依赖等信息。它找的文件是:opencv4.pc,路径一般在:
/usr/lib/pkgconfig/opencv4.pc           # apt 安装版本
/opt/opencv-4.5.4/lib/pkgconfig/opencv4.pc   # 手动安装版本
需要设置好环境变量 PKG_CONFIG_PATH 才能切换版本。
✅ 用法示例:
pkg-config --modversion opencv4          # 查询版本
pkg-config --cflags opencv4              # 查询头文件路径
pkg-config --libs opencv4                # 查询链接库
💡 应用场景:
编写或编译 C++ 项目(例如 CMake/Makefile)时判断当前使用的 OpenCV 版本。
在多版本共存时,用来检测 pkg-config 实际解析的是哪个版本。# Python
python3 -c "import cv2; print(cv2.__version__)"  # 应输出 4.5.4
🔍 作用:
查看当前 Python 解释器中实际导入的 OpenCV(cv2 模块)的版本。📚 原理:
Python 使用的是 cv2 模块(通常为 cv2.cpython-3X-xxx.so 文件)。
模块所在路径由 sys.path 决定,而 PYTHONPATH 变量可以控制它的优先级。
如果你系统中装了多个 cv2,Python 会根据路径顺序选择导入。✅ 用法示例:
python3 -c "import cv2; print(cv2.__version__)"    # 打印版本
python3 -c "import cv2; print(cv2.__file__)"       # 查看使用的是哪个路径下的 cv2
💡 应用场景:
验证当前 Python 环境中的 OpenCV 是否为自定义版本(例如你手动编译的 4.5.4)。
检查虚拟环境或系统环境中的 cv2 模块来源。
解决 Python cv2 导入失败或版本不一致的问题。
特性pkg-config --modversion opencv4python3 -c "import cv2"
面向语言C++Python
获取来源.pc 文件(OpenCV C++ 安装配置)cv2.so 模块(Python 模块路径)
与谁相关CMake/Makefile/ROS 等Python 脚本/深度学习训练/推理
依赖环境变量PKG_CONFIG_PATHPYTHONPATH, sys.path
切换版本方式通过 .pc 和环境变量切换通过 PYTHONPATHpip 安装控制
检查用途编译链接库版本检测Python 模块是否是你想用的版本

检察结果如下:

在这里插入图片描述

3、切换回系统默认版本

如果你想切回系统 OpenCV 4.2,只需:

将上述添加的环境变量注释掉即可

在这里插入图片描述
然后可以查询到:
在这里插入图片描述

四、多版本共存实用技巧

使用场景推荐方式
使用 apt 默认版本(OpenCV 4.2)不设置任何环境变量
使用自编译版本(OpenCV 4.5.4)设置 PKG_CONFIG_PATH, LD_LIBRARY_PATH, PYTHONPATH
编译其他项目(如 SIBR, ROS)CMakeLists.txt 中设置 CMAKE_PREFIX_PATH=/opt/opencv-4.5.4
Python 快速测试 cv2 版本安装 pip 包或设置 PYTHONPATH

五、总结

在 Ubuntu 20.04 上,系统默认 OpenCV 版本偏旧,而很多项目需要 4.5+ 才能使用新特性。通过本文的方法,你可以:

✅ 安装最新 OpenCV 版本

✅ 不破坏系统环境

✅ 支持 C++/Python 多版本自由切换

对于长期在Ubuntu 20.04进行开发,而不想升级系统版本的小伙伴,希望这篇文章能帮你少踩坑,感兴趣的同学欢迎评论区讨论!

http://www.dtcms.com/wzjs/168499.html

相关文章:

  • 做公司的网站大概多少钱十大短视频平台排行榜
  • 临沂做网站wyjzgzs如何建立和设计公司网站
  • 做调查的网站seo 推广服务
  • 将自己做的网站用电脑发到网上今日国际新闻摘抄
  • 网站制作banner 素材百度下载老版本
  • 做网站一般按什么报价seo排名培训公司
  • 网站服务器干啥宁波seo教程网
  • 上海做网站价格网站seo置顶
  • 惠州网站建设 鑫百度平台我的订单
  • 怎么做电子商务的网站推广短视频培训机构排名
  • 深圳招男做鸭网站哪些平台可以做推广
  • 世界最大的购物网站最新地址
  • 北京平面设计公司排名前十强鸡西seo
  • 为什么我自己做的网站百度不到公众号如何推广
  • 南宁门户网站seoul是什么国家
  • 网站建设费计入哪个二级科目樱桃bt官网
  • 网站漂浮怎么做58同城推广
  • 长沙做一个网站多少钱发帖百度秒收录网站分享
  • php做的网站facebook优化新十条
  • 怎么做网站文章伪原创大连网站排名推广
  • 关于做网站的毕业设计有没有帮忙推广的平台
  • 火星时代教育培训机构怎么样seo入门教程seo入门
  • 网站建设kpi考核站内免费推广有哪些
  • 网站上做404页面怎样做百度sem认证
  • 网页隐藏网站代码2023新冠结束了吗
  • wordpress插件doc厦门seo关键词优化培训
  • 室内装修设计图用什么软件深圳seo优化推广公司
  • 深圳住房与建设部网站深圳网络推广外包
  • wordpress模板hseo专业培训课程
  • 同里做网站网上怎么推广公司产品