目录

第一章 Ubuntu22下OpenCV4.6.0+contrib模块编译安装
第二章 ubuntu22下C++ kdevelop环境搭建:OpenCV示例
第三章 C++下OPENCV驱动调用海康GigE工业相机


文章目录

  • 目录
  • Ubuntu22下OpenCV4.6.0+contrib模块编译安装
  • 一、工具下载准备阶段
    • 下载OpenCV源代码
    • 下载 OpenCV contrib
    • 安装cmake-gui+mingw-64
  • 二、编译前准备
    • 下载缺失文件
    • 安装opencv依赖
    • cmake配置编译
      • 文件夹建立
      • cmake设置文件路径
      • cmake添加contrib文件路径
    • 生成makefile
  • 三、编译
    • 添加路径
  • 四、测试
  • 五、可能遇到的问题
    • 1.在执行 “pkg-config --modversion ”时显示“ No package ‘opencv‘ found”?解决方法
    • 2.编译的时遇到"make: *** [Makefile:166:all] 错误 2"问题解决方法

Ubuntu22下OpenCV4.6.0+contrib模块编译安装

由于最近学习需要用到linux开发,所以需要在linux上搭建相应的环境。本文完整介绍了如何在ubuntu22环境下进行opencv环境搭建的流程(其他版本Ubuntu应当相似)。


提示:以下是本篇文章正文内容,下面案例可供参考

一、工具下载准备阶段

下载OpenCV源代码

在OpenCV官网Library下载页下载OpenCV4.6.0的sources源代码
解压将文件放置在自己工作目录,如图笔者就将文件放置于/home/qiyao/OPENCV/opencv-4.6.0目录下:

下载 OpenCV contrib

opencv contrib下载地址:https://github.com/opencv/opencv_contrib/tags
选择对应版本下载即可。
笔者选择4.6.0版本下载,下载完毕后以笔者版本示意->
将解压得到的“opencv_contrib-4.6.0”文件夹移动至/home/qiyao/OPENCV/opencv-4.6.0/目录下
(可以选择其他文件夹,这里为了方便管理整个源代码所以将其放在一起)。

安装cmake-gui+mingw-64

在windows下cmake的gui界面可以很方便地完成编译选项的设置,在linuxshanghai可以安装cmake-gui工具包分别设置source code文件夹路径和buid文件夹路径,点击configure按钮
第一次打开会出现目标文件的选择
实现同样的效果(cmake-gui内置cmake,和系统内置的cmake分立)

$ sudo apt install cmake-qt-gui
$ sudo apt install mingw-w64

接下来就是OpenCV的编译阶段,需要作一些相应的提前准备

二、编译前准备

下载缺失文件

为了方便读者下载这些缺失的文件,笔者将自己所使用的文件进行打包上传至gitee仓库(为了方便记忆在此叫做文件包1)
https://gitee.com/C-Qiyao/opencv-cmake-download-file

安装opencv依赖

$ sudo apt install cmake
$ sudo apt install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
$ sudo apt install git

cmake配置编译

文件夹建立

在OpenCV源代码文件夹外新建一个build文件夹用以存放cmake的中间文件
笔者的OpenCV源代码文件路径为 /home/qiyao/OPENCV/opencv-4.6.0
新建的build文件夹路径为 /home/qiyao/OPENCV/BUILD

cmake设置文件路径

分别设置source code文件夹路径和buid文件夹路径,点击configure按钮
第一次打开会出现目标文件的选择
我们后面会使用make命令完成opencv的编译所以本次选择 unix makefiles作为目标文件

出现红色选框表示cmake参数出现变动或者问题,再次点击configure按钮,如果还有报错寻找出错的语句行,如果发现文件下载错误,将此前提到的文件包1拷贝至“/home/qiyao/OPENCV/opencv-4.6.0/.cache”文件夹下,再次进行configure操作。

cmake添加contrib文件路径

找到“opencv_extra_modules_path”这一项,填入contrib包对应的路径,精确到contrib的module文件夹

生成makefile

最后勾选自己所需要的模块,cinfigure之后点击generate,在build文件夹下生成对应的opencv makefile文件

三、编译

在buid文件夹下使用终端执行make指令开始进行opencv的编译
建议使用多线程优化的make编译

$ sudo make -j16

笔者在此使用了16个线程进行编译,读者可以根据自己计算机的cpu配置来选择合适的参数。
最后执行安装

$ sudo make install

添加路径

打开文件

$ sudo gedit /etc/ld.so.conf

在该文件内添加一行路径

include /usr/local/lib

使用ctrl+x关闭保存文件,再在终端输入

$ sudo nano ~/.bashrc

添加以下代码

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

保存退出,输入

$ source /etc/bash.bashrc

输入以下命令查看opencv版本

$ pkg-config opencv --modversion

四、测试

以读者的文件目录为例,进入源代码文件夹/opencv-4.6.0/samples/cpp/example_cmake文件夹下
打开终端输入:

$ mkdir build
$ cd build
$ cmake ..

输出如下结果:

-- OpenCV library status:
--     config: /usr/local/lib/cmake/opencv4
--     version: 4.6.0
--     libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_gapi;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_stitching;opencv_video;opencv_videoio
--     include path: /usr/local/include/opencv4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/qiyao/OPENCV/opencv-4.6.0/samples/cpp/example_cmake/bqiyao@qiyao-Lqiyao@qiyqiyaoqiqqiyao@qiyao-L

运行示例程序:
在build文件夹下继续输入

$ ./opencv_example

这时候会有一个摄像头界面打开,如图所示即大功告成!

五、可能遇到的问题

1.在执行 “pkg-config --modversion ”时显示“ No package ‘opencv‘ found”?解决方法

只需要在/usr/local/lib目录下新建一个 pkgconfig文件夹

$ cd /usr/local/lib
$ sudo mkdir pkgconfig
$ cd pkgconfig
$ sudo nano opencv.pc

在opencv.pc文件内写入如下数据即可:

prefix=/usr/local
exec_prefix=${prefix}
includedir=/usr/local/include
libdir=/usr/local/libName: OpenCV
Description: Open Source Computer Vision Library
Version: 4.6.0
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}

2.编译的时遇到"make: *** [Makefile:166:all] 错误 2"问题解决方法

在 make -j指令喜爱可能不会输出详细的错误信息,此时可以使用make指令运行一下,发现很多报错内容如下

/home/qiyao/OPENCV/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:96:27: error: ‘CODEC_ID_LJPEG’ was not declared in this scope; did you mean ‘AV_CODEC_ID_LJPEG’?96 | #define AV_CODEC_ID_LJPEG CODEC_ID_LJPEG|                           ^~~~~~~~~~~~~~
/home/qiyao/OPENCV/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:96:27: note: in definition of macro ‘AV_CODEC_ID_LJPEG’96 | #define AV_CODEC_ID_LJPEG CODEC_ID_LJPEG|                           ^~~~~~~~~~~~~~
/home/qiyao/OPENCV/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:2842:10: note: in expansion of macro ‘CV_CODEC’2842 |     case CV_CODEC(CODEC_ID_LJPEG):|          ^~~~~~~~
/home/qiyao/OPENCV/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:100:30: error: ‘CODEC_ID_RAWVIDEO’ was not declared in this scope; did you mean ‘AV_CODEC_ID_RAWVIDEO’?100 | #define AV_CODEC_ID_RAWVIDEO CODEC_ID_RAWVIDEO|                              ^~~~~~~~~~~~~~~~~
...........

可以判断是ffmpeg模块接口函数不匹配导致的,因为ffmpeg 和opencv版本不匹配导致的
解决方法:在cmake配置过程中关闭videoio模块的编译,或者是寻找合适版本的ffmpeg版本,笔者选择了第一种方案完成了opencv的编译。

Ubuntu22下OpenCV4.6.0+contrib模块编译安装相关推荐

  1. win10qt5.14.2下opencv4.4.0+contrib的mingw32编译

    本文默认已经安装好了qt5.14.2和cmake 1.下载opencv4.4.0与opencv4.4.0contrib opencv下载及安装,官网下载地址:https://opencv.org/re ...

  2. ambari 2.5.0源码编译安装

    参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...

  3. python 3.10.0源码编译安装

    python 3.10.0源码编译安装 文章目录 python 3.10.0源码编译安装 1. 安装编译依赖工具 2. 下载python 3.10.0 3. 编译安装 Python 4. 体验 1. ...

  4. CentOS6.5 编译安装zabbix3.0.5,编译安装zabbix_agent客户端

    1.环境准备: CentOS6.5 当前地址为192.168.137.30 搭建LAMP环境,YUM安装方式也可以,但是zabbix3.0要求提供PHP5.5以上版本. 这里可以查看这篇文章:编译安装 ...

  5. tesseract-4.0.0源码编译安装

    tesseract-4.0.0源码编译安装 安装开发工具 apt-get -y install gcc g++ make cmake autoconf automake libtool pkg-con ...

  6. postgresql 12.0 源码编译安装

    postgresql 12.0 源码编译安装 1.安装相关软件包 su - root yum install -y cmake gcc gcc-c++ perl readline readline-d ...

  7. win10 Opencv4.5.0源码编译支持CUDA加速

    目录 一.环境: 二.资源准备 三.release版编译 四.debug版编译 五.测试opencv-cuda能否使用 一.环境: VS2015 Cmake 二.资源准备 1.下载opencv4.5. ...

  8. 3. CMake 系列 - 分模块编译安装项目

    目录 1. 项目目录结构 2. 相关代码 2.1 add 模块 2.2 sub 模块 2.3 测试模块 2.4 顶层 CMakeLists.txt 3. 编译 & 安装 4. 项目安装基本语法 ...

  9. 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展...

    1.编译安装apache2.4.20 1 第一步: ./configure --prefix=/usr/local/httpd --enable-so 2 第二步: make 3 第三步: sudo ...

最新文章

  1. linux下VMware_Tools虚拟机工具的安装
  2. 设计模式中的那些工厂
  3. Spring JDK动态代理
  4. centos root密码_如何在CentOS中恢复丢失的root密码
  5. axios async/await
  6. 动态图相册 android,‎动态图相册 in de App Store
  7. eclipse中安装flex插件
  8. python变量赋值方式_【Python入门学习】详谈python变量和变量赋值语句
  9. 解决Could not find artifact com.oracle:ojdbc7:pom:12.1.0.2 的方案
  10. Bulletproofs: Short Proofs for Confidential Transactions and More学习笔记
  11. SAP 后台配置之FM基金管理篇
  12. android 合并分区说明,Android系统手机sd卡分区后合并图文详解
  13. bugku-秋名山老司机
  14. 某微型计算机指令格式如图,计算机组成原理期末复习试题2套不含答案
  15. 什么是SD-WAN?网络技术科普
  16. GitLab 的安装及使用
  17. 电脑个性化和显示设置打不开解决方法
  18. win10 ISO镜像下载
  19. uni-app使用Hbuilder X如何安卓APP打包、发布、运行
  20. 刷新浏览器后不进行任何点击操作时,不播放声音 | 解决方案(VUE-Element)

热门文章

  1. 新兴技术在金融领域(反洗钱)的应用
  2. docker镜像批量导入、导出
  3. Camera2使用方法例子代码
  4. 关于秒杀场景的全面分析总结
  5. 查办总统丑闻的韩国检方受到黑客攻击
  6. 系统分析与设计团队项目第二次
  7. 佛山顺德计算机美工培训班,顺德区电子商务美工培训
  8. yslow3.1.2_YSlow 2.0:最初的草图
  9. u8 系统服务器配置,用友u8服务器配置推荐
  10. latex中文论文模板_西安建筑科技大学LaTeX学位论文模板 v1.0.0 beta