ubuntu cmake opencv4.2

2024-08-22 12:18
文章标签 ubuntu cmake opencv4.2

本文主要是介绍ubuntu cmake opencv4.2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

好久没有倒腾 opencv,发现opencv都4.2 版本了,今天编译发现其实cmake命令和3.×的差不多。
可以看看我以前倒腾的一个编译步骤。

我的opencv 和 opencv_contrib 都是克隆下来的,master目前的版本是4.3不稳定版本,所以建议checkout到4.2

# 在opencv下:
git checkout 4.2.0
# 在opencv_contrib下,版本一定要和opencv版本对应,否则会报错
git checkout 4.2.0

这次遇到的一个最大的问题,不是编译,而是一些文件的下载。在没有梯子的情况下,30k的小水管倒腾了一天,我下载好了,供大家使用。

  • 百度云盘-[wb18]
  • csdn下载

这个包下载下来,还不能直接起到作用,要使用起来,还需要拷贝到对应的目录里面,我这里写了一个python脚本,供大家参考:

import os
import shutil# 下面三个变量根据自己实际情况修改
package_path = './opencv_down_data'  # 我整理的包,大家可以在我分享的百度云盘或者csdn下载。
src_dir = '~/workspace/source_got/opencv/opencv-20200316/' # 是源代码目录
build_dir = os.path.join(src_dir, 'build/') # cmake 的编译目录# 这个是opencv cmake 自创的一个缓存目录
catch_dir = os.path.join(src_dir, '.cache/')# 下面是路径结构
# 前者文件名和下载名一样,是编译目录下的目录结构
# 后者文件名加上了hash校验值,是缓存目录下的目录结构
dir_paths = [#['3rdparty/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz',#'ippicv/7421de0095c7a39162ae13a6098782f9-ippicv_2020_lnx_intel64_20191018_general.tgz'], # 做到master分支上,导致资源是编译4.3的了['3rdparty/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz','ippicv/c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz'],#这个是4.2的资料['3rdparty/ade/v0.1.1f.zip','ade/b624b995ec9c439cbc2e9e6ee940d3a2-v0.1.1f.zip'],['downloads/xfeatures2d/boostdesc_bgm.i','xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i'],['downloads/xfeatures2d/boostdesc_bgm_bi.i','xfeatures2d/boostdesc/232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i'],['downloads/xfeatures2d/boostdesc_bgm_hd.i','xfeatures2d/boostdesc/324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i'],['downloads/xfeatures2d/boostdesc_binboost_064.i','xfeatures2d/boostdesc/202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i'], ['downloads/xfeatures2d/boostdesc_binboost_128.i','xfeatures2d/boostdesc/98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i'], ['downloads/xfeatures2d/boostdesc_binboost_256.i','xfeatures2d/boostdesc/e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i'], ['downloads/xfeatures2d/boostdesc_lbgm.i','xfeatures2d/boostdesc/0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i'], ['downloads/xfeatures2d/vgg_generated_48.i','xfeatures2d/vgg/e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i'], ['downloads/xfeatures2d/vgg_generated_64.i','xfeatures2d/vgg/7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i'], ['downloads/xfeatures2d/vgg_generated_80.i','xfeatures2d/vgg/7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i'], ['downloads/xfeatures2d/vgg_generated_120.i','xfeatures2d/vgg/151805e03568c9f490a5e3a872777b75-vgg_generated_120.i'], ['share/opencv4/testdata/cv/face//face_landmark_model.dat','data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat' ]] # 如果还没有编译过,可能有的目录不存在
# 检查一下,没有创建一个
def chmk_parent_dir(p):t = os.path.dirname(p)if not os.path.exists(t):os.makedirs(t)# 拷贝部分
for de in dir_paths:file_p = os.path.join(package_path, os.path.basename(de[0]))bin_p = os.path.join(build_dir, de[0])chmk_parent_dir(bin_p)shutil.copy(file_p, bin_p)catch_p = os.path.join(catch_dir, de[1])chmk_parent_dir(catch_p)shutil.copy(file_p, catch_p)# 安装的时候遇到的坑,我怀疑这个ippicv是不是亲生的
# 这里需要自己解压 ippicv_2020_lnx_intel64_20191018_general
def cd_path(p):if os.path.exists(p):os.chdir(os.path.dirname(p)) if os.path.isfile(p) else os.chdir(p)return Trueelse:print("dir not exists: %s" % (p))return Falseippicv = os.path.join(build_dir, package_path[0][0])
if cd_path(ippicv):os.system('tar xf %s' % (ippicv))

根据上面脚本,可以将文件拷贝到对应目录,骗过cmake到网上去下载程序包。

然后就cmake, 命令里面的路径根据自己的环境进行修改,这个是参考以前的文档修改的,当时没有做记录,大家将就看,也可以在官网文档上参考:

cmake -D CMAKE_BUILD_TYPE=RELEASE \-D INSTALL_PYTHON_EXAMPLES=ON \-D INSTALL_C_EXAMPLES=OFF \-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-20200316/modules \-D PYTHON_DEFAULT_EXECUTABLE=~/anaconda3/bin/python3 \-D WITH_TBB=ON \-D WITH_V4L=ON \-D WITH_QT=OFF \-D BUILD_opencv_python3=ON \-D BUILD_opencv_python2=OFF \-D PYTHON3_EXECUTABLE=~/anaconda3/bin/python3 \-D PYTHON3_INCLUDE_DIR=~/anaconda3/include/python3.7m \-D PYTHON3_LIBRARY=~/anaconda3/lib/libpython3.7m.so \-D PYTHON3_PACKAGES_PATH=~/anaconda3/lib/python3.7/site-packages \-D PYTHON3_NUMPY_INCLUDE_DIRS=~/anaconda3/lib/python3.7/site-packages/numpy/core/include/ \-D PYTHON_NUMPY_PATH=~/anaconda3/lib/python3.7/site-packages \-D WITH_GTK=ON \-D WITH_OPENGL=ON \-D WITH_CUDA=OFF \-D BUILD_EXAMPLES=ON \-D HDF5_hdf5_LIBRARY=/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so .. 

然后make一下就好了

make -j8

其他问题:
如果 opencv 和 opencv_contrib 的版本没有对上,报错了:

Scanning dependencies of target example_tutorial_optical_flow_dense
/home/lhpc04/workspace2/source_got/opencv/opencv-20200316/samples/cpp/stitching_detailed.cpp: In function ‘int main(int, char**)’:
/home/lhpc04/workspace2/source_got/opencv/opencv-20200316/samples/cpp/stitching_detailed.cpp:434:31: error: ‘cv::xfeatures2d::SIFT’ has not been declaredfinder = xfeatures2d::SIFT::create();

问题不大,记得 使用对应版本。


嗯,完成!

这篇关于ubuntu cmake opencv4.2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1096244

相关文章

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

ubuntu系统使用官方操作命令升级Dify指南

《ubuntu系统使用官方操作命令升级Dify指南》Dify支持自动化执行、日志记录和结果管理,适用于数据处理、模型训练和部署等场景,今天我们就来看看ubuntu系统中使用官方操作命令升级Dify的方... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。

如何在Ubuntu上安装NVIDIA显卡驱动? Ubuntu安装英伟达显卡驱动教程

《如何在Ubuntu上安装NVIDIA显卡驱动?Ubuntu安装英伟达显卡驱动教程》Windows系统不同,Linux系统通常不会自动安装专有显卡驱动,今天我们就来看看Ubuntu系统安装英伟达显卡... 对于使用NVIDIA显卡的Ubuntu用户来说,正确安装显卡驱动是获得最佳图形性能的关键。与Windo

双系统电脑中把Ubuntu装进外接移动固态硬盘的全过程

《双系统电脑中把Ubuntu装进外接移动固态硬盘的全过程》:本文主要介绍如何在Windows11系统中使用VMware17创建虚拟机,并在虚拟机中安装Ubuntu22.04桌面版或Ubunt... 目录一、首先win11中安装vmware17二、磁盘分区三、保存四、使用虚拟机进行系统安装五、遇见的错误和解决

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设