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

Ubuntu【系统环境下】【编译安装OpenCV】【C++调用系统opencv库】

Ubuntu【系统环境下】【编译安装OpenCV】【C++调用系统opencv库】

前言:

本人需要用C++写代码,调用OpenCV库,且要求OpenCV版本号大于4.1.0

由于使用的是18.04的版本,所以apt安装OpenCV的版本始终是3.2.0,非常拉胯!!!

所以只能重新编译安装OpenCV

命令工具

  1. 查看当前C++调用的OpenCV代码
    # include "opencv2/opencv.hpp"
    using namespace cv;
    int main(){printf(CV_VERSION);
    }
    
  2. apt 安装 OpenCV
    sudo apt install libopencv-dev
  3. apt 安装 OpenCV 并与系统python环境关联
    sudo apt update
    sudo apt-get install python-opencv 是安装在python2 上的
    sudo apt-get install python3-opencv 是安装在python3 上的
  4. 查看系统当前的OpenCV版本号(是系统的哦!)
    pkg-config opencv --modversion
    pkg-config --modversion opencv4
    可以看到,多个OpenCV版本可以共存
  5. 查看python环境下的OpenCV版本
    python3 -c "import cv2; print(cv2.__version__)"

编译安装

  1. 下好opencv和opencv_contrib,版本要一致,查看版本号git checkout <opencv-version>
  2. sudo apt install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \ gfortran openexr libatlas-base-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libdc1394-22-dev
  3. 在opencv的那个库里mkdir build && cd build
  4. OK,现在一定要将自己的conda环境退出来,进入系统环境。
  5. 这里记得改掉opencv_contrib的路径
    cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON ..
  6. make -j36
  7. sudo make install
  8. pkg-config --modversion opencv4
  9. python3 -c "import cv2; print(cv2.__version__)"

报错解决:

Ubuntu 18.04 在安装OpenCV4.6.0时遇到“opencv2/gapi.hpp: No such file or directory“ 解决方法
进入到 /opencv4.6.0/samples/cpp/CMakelists.txt 文件目录下,打开 CMakelists.txt 文件,在其中添加 opencv_gapi 指令,具体添加如下图所示
在这里插入图片描述

参考:

How to Install OpenCV on Ubuntu 18.04

http://www.lryc.cn/news/147433.html

相关文章:

  • AR界安卓在中国,Rokid引爆空间计算狂潮
  • 在 React 中如何使用定时器
  • Unity记录4.6-存储-第四阶段总结
  • 【Python】从入门到上头— 使用包、模块、安装第三方模块(7)
  • flutter和原生利用pigeon建立通道
  • TCP连接分析:探寻TCP的三次握手
  • gitHooks使用教程
  • 2023.8 - java - 数组
  • ChatGPT怎么辅助解决社会问题?
  • Rust之自动化测试(一):如何编写测试
  • 简单聊聊Https的来龙去脉
  • 【注册岩土】Python土力学与基础工程计算.PDF-土中的应力
  • 祝贺!Databend Cloud 和阿里云 PolarDB 达成认证
  • SQL语言-01
  • PyCharm软件安装包分享(附安装教程)
  • AI文本标注的概念,类型和方法
  • 【AutoLayout案例04-游戏图片-按钮适配 Objective-C语言】
  • Spring Boot业务系统如何实现海量数据高效实时搜索
  • 面向对象的设计原则
  • 前端需要理解的工程化知识
  • 【Terraform学习】使用 Terraform创建DynamoDB添加项目(Terraform-AWS最佳实战学习)
  • 基于单片机教室人数实时检测系统
  • alibabacloud的简单使用,nacos配置中心+服务中心。作者直接给自己写的源码
  • Python爬虫:一个爬取豆瓣电影人像的小案例
  • STM32CubeMX配置STM32G0 Standby模式停止IWDG(HAL库开发)
  • 39.RESTful案例
  • Power Pivot 实现数据建模
  • Ansible自动化运维之playbooks剧本
  • Docker - Docker安装MySql并启动
  • SQL Server 2019导入txt数据