论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
SQL-Server
›
Ubuntu22.04体系源码编译OpenCV 4.10.0(包罗opencv_con ...
Ubuntu22.04体系源码编译OpenCV 4.10.0(包罗opencv_contrib)
宁睿
论坛元老
|
2024-12-5 08:59:56
|
显示全部楼层
|
阅读模式
楼主
主题
1083
|
帖子
1083
|
积分
3259
因项目需要使用不同版本的OpenCV,而当地的Ubuntu22.04体系装了ROS2自带OpenCV 4.5.4的版本,于是编译一个OpenCV 4.10.0(带opencv_contrib)版本,给特定的项目使用,这就不消换个设备后重新安装OpenCV 了,直接依赖编译好的包使用。
PS:如需要直接在体系中安装OpenCV,可参考:https://blog.csdn.net/qq_45445740/article/details/142770493?spm=1001.2014.3001.5501
1.源码下载
opencv:https://github.com/opencv/opencv
选择4.10.0 的源码包进行下载
opencv_contrib:https://github.com/opencv/opencv_contrib
同样选择4.10.0 的源码包进行下载
下载好后选择通过图形界面大概unzip命令进行解压,如下图所示:
2.情况准备
安装依赖
在开始之前,需要安装OpenCV编译过程中所需的依赖包。可以通过以下命令安装:
sudo apt update
sudo apt install build-essential cmake git pkg-config libjpeg-dev libtiff-dev libpng-dev libjasper-dev libdcmtk-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
sudo apt install libgtk-3-dev libcanberra-gtk3-dev libatlas-base-dev gfortran
sudo apt install python3-dev python3-numpy
复制代码
3.源码编译
3.1 创建编译目次
在源码目次下创建一个新的构建目次用于编译:
cd opencv/opencv-4.10.0
mkdir build
cd build
复制代码
3.2 配置CMake选项
使用CMake配置OpenCV的构建选项。需要指定OpenCV contrib模块的路径,并启用需要的功能(如Python绑定等)。
PS:CMAKE_INSTALL_PREFIX和OPENCV_EXTRA_MODULES_PATH需要指定编译后存放的路径和 contrib模块的路径。
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/home/xxx/Documents/opencv/opencv-4.10.0/install \
-D OPENCV_EXTRA_MODULES_PATH=/home/xxx/Documents/opencv/opencv_contrib-4.10.0/modules \
-D BUILD_SHARED_LIBS=ON \
-D CMAKE_CXX_STANDARD=11 \
-D WITH_WEBP=OFF \
-D WITH_JPEG=ON \
-D WITH_TIFF=OFF \
-D BUILD_EXAMPLES=ON \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_opencv_apps=OFF \
-D WITH_CUDA=OFF \
-D BUILD_JAVA=OFF \
-D WITH_FFMPEG=OFF \
-D WITH_VTK=OFF \
-D OPENCV_ENABLE_NONFREE=ON ..
# CMAKE_BUILD_TYPE=Release:编译类型为Release。
# CMAKE_INSTALL_PREFIX=/opencv/opencv-4.10.0/install:指定安装目录。
# OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib-4.10.0/modules:指定OpenCV Contrib模块路径。
# 其他选项根据需求启用或禁用特定功能。
复制代码
3.2.1 OpenCV的CMake选项说明
OpenCV的官方文档中列出了常见的CMake选项,以下是一些常见的构建选项:
根本选项
CMAKE_BUILD_TYPE=Release:选择编译类型,通常选择 Release,但也可以选择 Debug 进行调试编译。
CMAKE_INSTALL_PREFIX:指定安装路径。
WITH_CUDA=ON/OFF:启用/禁用CUDA支持(如果你的机器有NVIDIA显卡并且你希望加速计算)。
WITH_OPENCL=ON/OFF:启用/禁用OpenCL支持。
BUILD_EXAMPLES=ON/OFF:是否编译OpenCV示例。
BUILD_opencv_python3=ON/OFF:是否构建Python 3绑定(如果需要在Python中使用OpenCV)。
BUILD_TESTS=ON/OFF:是否编译单元测试。
复制代码
Contrib模块
OPENCV_EXTRA_MODULES_PATH=path/to/opencv_contrib/modules:指定Contrib模块的路径。
OPENCV_ENABLE_NONFREE=ON/OFF:启用/禁用一些额外的非免费模块(如SIFT和SURF)。
复制代码
其他常见选项
WITH_FFMPEG=ON/OFF:是否启用FFmpeg(用于处理视频文件)。
WITH_GTK=ON/OFF:是否启用GTK图形界面(如果你需要GUI应用)。
WITH_TBB=ON/OFF:启用Intel TBB(线程并行)。
WITH_JPEG=ON/OFF:启用JPEG支持。
WITH_PNG=ON/OFF:启用PNG支持。
复制代码
可以通过检察 CMakeLists.txt 或 OpenCV的官方GitHub仓库中的文档来获取完备的CMake选项列表。
3.2.2 办理编译过程中出现下载文件如IPPICV超时失败的题目
办理方法:将需要下载的文件提前下好后放在指定的目次下,并改名。
如下图所示,boostdesc_binboost_256.i下载不绝卡在这里,通过编译过程中的链接,提前将boostdesc_binboost_256.i文件下载好了放在opencv/opencv-4.10.0/.cache/xfeatures2d/boostdesc目次下,并修改为当前带commit命名的文件,删除原先的文件,重新再执行cmake指令。
很不幸,我替换了下面这么多。。。
参考:https://www.cnblogs.com/ZhaoqunZhong/p/16579015.html
3.3 编译
make -j$(nproc)
# -j$(nproc) 会让编译使用所有可用的CPU核心,以加快编译速度
复制代码
3.4 安装编译后的产物
编译完成后,使用以下命令将编译效果安装到指定目次:
make install
复制代码
安装完成后,OpenCV将被安装到
opencv/opencv-4.10.0/install
目次下。
3.5 打包编译后的库
将install目次打包生成压缩包:libopencv-4.10.0-Linux-x86_64.zip lib
这样可以将这个压缩包拷贝到其他设备上以便在其他地方使用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
宁睿
论坛元老
这个人很懒什么都没写!
楼主热帖
java前置学习
【RocketMQ】消息的存储
iOS Widget
简单的用Python对手机号进行加密 ...
【PostgreSQL】PostgreSQL重建与主库不 ...
k8s v-1.20版本部署详细过程[实测可用 ...
基于单片机的压力测控仿真设计(#0024) ...
❤️肝下25万字的《决战Linux到精通》 ...
Unity 将是驱动 C# 增长的引擎吗 ? ...
【iOS面试总结】疫情隔离中,线上面试 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Oracle
快速回复
返回顶部
返回列表