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

相关文章

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

在Ubuntu 20.04上安装Nginx的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 Nginx 是世界上最流行的 Web 服务器之一,负责托管互联网上一些最大和流量最高的网站。它是一个轻量级选择,可以用作 Web 服务器或反向代理。 在本指南中,我们将讨论如何在 Ubuntu 20.04 服务器上安装 Nginx,调整防火墙,管理 Nginx 进程,并设置服务器块以从单

虚拟机ubuntu配置opencv和opencv_contrib

前期准备  1.下载opencv和opencv_contrib源码 opencv-4.6.0:https://opencv.org/releases/ opencv_contrib-4.6.0:https://github.com/opencv/opencv_contrib 在ubuntu直接下载或者在window上下好传到虚拟机里都可以 自己找个地方把他们解压,个人习惯在home下新建一

解决ubuntu系统无法与FinalShell无法连接问题

问题 解决方案 先下载ubuntu网络工具 sudo apt install net-tools 输入密码 下载完成后进入管理员模式查看密码 sudo -i hostname -I 查看IP 得到ip地址后再继续安装 openssh-server 插件 sudo apt-get install openssh-server 问题解决 尝试连接Fina

Cmake之3.0版本重要特性及用法实例(十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧

hector_quadrotor编译总结 | ubuntu 16.04 ros-kinetic版本

hector_quadrotor编译总结 | ubuntu 16.04 ros-kinetic版本 基于Ubuntu 16.04 LTS系统所用ROS版本为 Kinetic hector_quadrotor ROS包主要用于四旋翼无人机的建模、控制和仿真。 1.安装依赖库 所需系统及依赖库 Ubuntu 16.04|ros-kinetic|Gazebo|gazebo_ros_pkgs|ge

hector_quadrotor编译总结 | ubuntu 14.04 ros-indigo版本

hector_quadrotor编译总结 | ubuntu 14.04 ros-indigo版本 基于Ubuntu 14.04 LTS系统所用ROS版本为 Indigo hector_quadrotor ROS包主要用于四旋翼无人机的建模、控制和仿真。 备注:两种安装方式可选:install the binary packages | install the source files

[轻笔记]ubuntu shell脚本切换conda环境

source /home/yourhostname/anaconda3/etc/profile.d/conda.sh # 关键!!!conda activate env_name

[轻笔记] ubuntu Shell脚本实现监视指定进程的运行状态,并能在程序崩溃后重启动该程序

根据网上博客实现,发现只能监测进程离线,然后对其进行重启;然而,脚本无法打印程序正常状态的信息。自己通过不断修改测试,发现问题主要在重启程序的命令上(需要让重启的程序在后台运行,不然会影响监视脚本进程,使其无法正常工作)。具体程序如下: #!/bin/bashwhile [ 1 ] ; dosleep 3if [ $(ps -ef|grep exe_name|grep -v grep|

SSH连接虚拟机中的Ubuntu 12.0.4

摘要:主要是解决不能使用ssh远程Ubuntu的问题、使用的远程工具是putty、也可以使用xshell、ubunut12.0.4是装在虚拟机中的、不过这个应该没有什么影响。 一:问题的出现 前两天使用VMware装了一个ubuntu12.0.4之后、因为常常使用命令行、又喜欢在虚拟机与实体机中切来切去、感觉很不方便、就想在xp中远程ubuntu、遇到了点小意外、经过一会调试解决成功、把