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

ubuntu18.04 多版本opencv配置记录

多版本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.lryc.cn/news/220393.html

相关文章:

  • Spring Security—OAuth 2.0 资源服务器的多租户
  • VB.NET—窗体引起的乌龙事件
  • 批量新增报错PSQLException: PreparedStatement can have at most 65,535 parameters.
  • 数仓分层能减少重复计算,为啥能减少?如何减少?这篇文章包懂!
  • 【Linux】基础IO之文件操作(文件fd)——针对被打开的文件
  • 什么是超算数据中心
  • 阿里云服务器省钱购买和使用方法(图文详解)
  • Apache Flink 1.12.0 on Yarn(3.1.1) 所遇到的問題
  • pandas - 数据分组统计
  • Git简介和安装
  • 思维模型 布里丹毛驴效应
  • 预处理、编译、汇编、链接
  • 面试问题?
  • pytorch 笔记:PAD_PACKED_SEQUENCE 和PACK_PADDED_SEQUENCE
  • Ubuntu 创建用户
  • 华为政企路由器产品集
  • 性能测试知多少---了解前端性能
  • Docker-compose容器群集编排管理工具
  • Python 深度学习导入的一些包的说明
  • 劲升逻辑与安必快、鹏海运于进博会签署合作协议,助力大湾区外贸高质量发展
  • hivesql,sql 函数总结:
  • 前端js实现井字游戏和版本号对比js逻辑【适用于vue和react】
  • unity 通过Andriod arr 访问 手机自带的浏览器
  • MySQL -- 索引
  • 23ccpc(最长上升子序列题解)
  • BUUCTF easycap 1
  • [LeetCode]-160. 相交链表-141. 环形链表-142.环形链表II-138.随机链表的复制
  • 聊一聊关于手机Charge IC的电流流向
  • 【k8s】pod调度——亲和,反亲和,污点,容忍
  • 分享者 - 携程旅游创作者搬砖项目图文教程