Ubuntu22下OpenCV4.6.0+contrib模块编译安装
目录
第一章 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模块编译安装相关推荐
- win10qt5.14.2下opencv4.4.0+contrib的mingw32编译
本文默认已经安装好了qt5.14.2和cmake 1.下载opencv4.4.0与opencv4.4.0contrib opencv下载及安装,官网下载地址:https://opencv.org/re ...
- ambari 2.5.0源码编译安装
参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...
- python 3.10.0源码编译安装
python 3.10.0源码编译安装 文章目录 python 3.10.0源码编译安装 1. 安装编译依赖工具 2. 下载python 3.10.0 3. 编译安装 Python 4. 体验 1. ...
- CentOS6.5 编译安装zabbix3.0.5,编译安装zabbix_agent客户端
1.环境准备: CentOS6.5 当前地址为192.168.137.30 搭建LAMP环境,YUM安装方式也可以,但是zabbix3.0要求提供PHP5.5以上版本. 这里可以查看这篇文章:编译安装 ...
- tesseract-4.0.0源码编译安装
tesseract-4.0.0源码编译安装 安装开发工具 apt-get -y install gcc g++ make cmake autoconf automake libtool pkg-con ...
- postgresql 12.0 源码编译安装
postgresql 12.0 源码编译安装 1.安装相关软件包 su - root yum install -y cmake gcc gcc-c++ perl readline readline-d ...
- win10 Opencv4.5.0源码编译支持CUDA加速
目录 一.环境: 二.资源准备 三.release版编译 四.debug版编译 五.测试opencv-cuda能否使用 一.环境: VS2015 Cmake 二.资源准备 1.下载opencv4.5. ...
- 3. CMake 系列 - 分模块编译安装项目
目录 1. 项目目录结构 2. 相关代码 2.1 add 模块 2.2 sub 模块 2.3 测试模块 2.4 顶层 CMakeLists.txt 3. 编译 & 安装 4. 项目安装基本语法 ...
- 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展...
1.编译安装apache2.4.20 1 第一步: ./configure --prefix=/usr/local/httpd --enable-so 2 第二步: make 3 第三步: sudo ...
最新文章
- linux下VMware_Tools虚拟机工具的安装
- 设计模式中的那些工厂
- Spring JDK动态代理
- centos root密码_如何在CentOS中恢复丢失的root密码
- axios async/await
- 动态图相册 android,动态图相册 in de App Store
- eclipse中安装flex插件
- python变量赋值方式_【Python入门学习】详谈python变量和变量赋值语句
- 解决Could not find artifact com.oracle:ojdbc7:pom:12.1.0.2 的方案
- Bulletproofs: Short Proofs for Confidential Transactions and More学习笔记
- SAP 后台配置之FM基金管理篇
- android 合并分区说明,Android系统手机sd卡分区后合并图文详解
- bugku-秋名山老司机
- 某微型计算机指令格式如图,计算机组成原理期末复习试题2套不含答案
- 什么是SD-WAN?网络技术科普
- GitLab 的安装及使用
- 电脑个性化和显示设置打不开解决方法
- win10 ISO镜像下载
- uni-app使用Hbuilder X如何安卓APP打包、发布、运行
- 刷新浏览器后不进行任何点击操作时,不播放声音 | 解决方案(VUE-Element)