ubuntu18.04 多版本opencv配置记录

news/2025/2/13 5:57:09/

多版本OpenCV过程记录

环境

ubuntu18.04
python2.7 python3.6 python3.9
opencv 3.2

OpenCV 4.4.0安装

Ubuntu18.04 安装 Opencv4.4.0 及 Contrib (亲测有效)
暂时不清楚Contrib的作用,所以没安装,只安装最基础的

下载opencv4.4.0并解压

opencv下载地址

# 没验证过wget,但是我觉得可以
cd ~/tools/opencv
wget https://github.com/opencv/opencv/archive/4.4.0.zip
unzip opencv-4.4.0.zip

依赖

sudo apt update
sudo apt install cmake
sudo apt install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt install pkg-config

自定义安装

多版本OpenCV+OpenCV_contrib安装及使用
Ubuntu下多版本OpenCV共存和切换

# 安装地址需要注意
cd opencv-4.4.0
mkdir build && cd buildcmake -DCMAKE_BUILD_TYPE=RELEASE \-DCMAKE_INSTALL_PREFIX=/home/toniht/tools/opencv/opencv-4.4.0/build/installed \-DWITH_GTK=ON \-DOPENCV_GENERATE_PKGCONFIG=YES \..make
make install

ERROR 1:
/home/toniht/tools/opencv/opencv-4.4.0/modules/videoio/src/ffmpeg_codecs.hpp:81:26: error: ‘CODEC_ID_H264’ was not declared in this scope
#define AV_CODEC_ID_H264 CODEC_ID_H264

满篇飘红,全是错误
FIX:
发现是按照别的教程,曾经安装过FFmpeg,又去把它卸载了。然后删除build重新构建,解决。

版本切换

在bashrc文件中添加

# OpenCV 4.4.0
# export OPENCV_440_PATH=/home/toniht/tools/opencv/opencv-4.4.0/build
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/toniht/tools/opencv/opencv-4.4.0/build/installed/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/toniht/tools/opencv/opencv-4.4.0/build/installed/lib

企图添加环境变量OPENCV_440_PATH方便后续调用,但是发现设置后在CMakeLists中无论如何都读取不到,即便在终端中echo OPENCV_440_PATH都能正确输出路径,但是CMakeLists中还是不行。很玄学。

在项目(以ORB_SLAM3为例)中的CMakeLists.txt文件中修改

# set(OpenCV_DIR "${OPENCV_440_PATH}")
set(OpenCV_DIR "/home/toniht/tools/opencv/opencv-4.4.0/build")
message(STATUS "OpenCV_DIR:${OPENCV_440_PATH}")find_package(OpenCV 4.4)if(NOT OpenCV_FOUND)message(FATAL_ERROR "OpenCV > 4.4 not found.")endif()

项目正常编译。

ERROR 2:
玄学bug,${OPENCV_440_PATH}在终端中都正常输出了,但是CMakeLists怎么输出都是空,希望有人能解决我的疑问。


http://www.ppmy.cn/news/1201345.html

相关文章

农业水土环境与面源污染建模及对农业措施响应技术

农业面源污染治理是生态环境保护的重要内容,事关农村生态文明建设,事关粮食安全和农业绿色发展,事关城乡居民的水缸子、米袋子、菜篮子。加强农业水土环境建模与农业面源污染治理与监督指导,可以保护生态环境,维护国家…

C语言strcat函数再学习

之前学习了strcat函数;下面继续学习此函数; 它的功能描述是, 功能 把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\0”)。要保证*dest足够长&#xff0…

CSS的概念和基本用法

CSS的作用: 页面美化和布局控制。 1.概念: Cascading Style Sheets 层叠样式表。 层叠:多个样式可以作用在同一个html的元素上,同时生效。 2.好处: (1).功能强大 (2).将内容展示和样式控制分离 * 降低耦合度&#xf…

LSTM缓解梯度消失问题

关于LSTM https://easyai.tech/ai-definition/lstm/ https://towardsdatascience.com/illustrated-guide-to-lstms-and-gru-s-a-step-by-step-explanation-44e9eb85bf21 为何LSTM缓解梯度消失问题 为什么LSTM会减缓梯度消失? - 知乎 LSTM引入长短期记忆&#xf…

高数笔记05:不定积分与定积分

图源:文心一言 时间比较紧张,仅导图~~🥝🥝 第1版:查资料、画导图~🧩🧩 参考资料:《高等数学 基础篇》武忠祥 🐳目录 🐳目录 🐳不定积分 &#…

pytorch与cudatoolkit,cudnn对应关系及安装相应的版本

文章目录 一.cuda安装二、nvidia 驱动和cuda runtime 版本对应关系三、安装cudatoolkit,cudnn对应版本四、cuda11.2版本的对应安装的pytorch版本及安装五、相关参考 一.cuda安装 1.确定当前平台cuda可以安装的版本 安装好显卡驱动后,使用nvidia-smi命令可以查看这个…

CSS鼠标悬浮变小手

当我们在网页设计中需要用户点击或者选择某个元素时,很多时候会使用鼠标悬浮变小手的效果,这种效果可以让用户更快速的完成操作,提高用户体验。 在CSS中设置鼠标悬浮变小手效果非常简单,只需要使用cursor属性即可。以下是具体步骤…

DAY45 70. 爬楼梯 + 322. 零钱兑换 + 279.完全平方数

70. 爬楼梯 题目要求&#xff1a;假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 爬楼梯的dp版本&#xff0c;完全背包。 class Solution { public:int climbStairs(int n) {vector<int>…