ubuntu18.04安装OpenCV3.4.12步骤及安装中遇到的一些问题
文章目录
- 一、安装步骤
- 1.下载源文件
- 2.解压
- 3.安装必须的依赖包
- 4.cmake
- 5. 安装OpenCV
- 6.配置环境
- 7.验证是否成功
- 二、遇到的问题及解决方法
- 1. 提示缺少boostdesc_bgm.i
- 2. 提示xfeatures2d.hpp: 没有那个文件或目录
- 3. 在编译运行程序时提示无法打开"raise.c"
- 在这里插入图片描述](https://img-blog.csdnimg.cn/2020111716130783.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZGExOTk4MDEyMg==,size_16,color_FFFFFF,t_70#pic_center)对问题进行搜索,大多数文章都是表示是由于缺少glibc库造成的,如[这篇文章,按其中的步骤安装glibc库并更改了launch.json中的路径,依然无效。 最后找到一个治标不治本的方法——**将相对路径改为绝对路径**,更改后程序可以正常运行 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201117162040173.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZGExOTk4MDEyMg==,size_16,color_FFFFFF,t_70#pic_center)**这个问题暂时放在这里,待完全解决后再来更新本文章,如果各位有什么解决方法或建议请发表在评论区或私信笔者,笔者将不胜感激**
一、安装步骤
1.下载源文件
在OpenCV的官方网站下载OpenCV的3.4.12源文件
OpenCV源文件下载地址
并下载3.4.12版本的contrib包
OpenCV_contrib下载地址
(其中contrib包是OpenCV中一些比较新的或者不那么稳定的算法模块,而OpenCV的主体中是比较稳定的算法模块)
2.解压
将OpenCV解压到喜欢的位置,例如/home/dada, 如下图
然后将contrib安装包解压到OpenCV的安装目录下,如下图
3.安装必须的依赖包
首先,更新一下
sudo apt-get update
sudo apt-get upgrade
然后安装依赖包
sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev sudo apt-get install qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenblas-base libopenblas-dev doxygen openjdk-8-jdk pylint libvtk6-devsudo apt-get install pkg-config
在上述依赖库安装完成之后才能开始后续操作。在对上述代码复制时最好一次一句地复制,否则无法安装,终端中会直接跳过,在选择Y/n时无法选择Yes。
可能遇到的问题
其中可能遇见无法安装libjasper-dev的问题,类似下面的页面
XXX@XXX:~/Files/opencv-3.1.0$ sudo apt-get install libjasper-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libjasper-dev
解决方案:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
其中libjasper1是libjasper-dev的依赖包,然后再次安装
sudo apt install libjasper1 libjasper-dev
可以完成所有依赖包的安装操作。
4.cmake
在终端进入OpenCV的目录中
创建一个build文件夹并进入
mkdir buildcd build
cmake
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK=ON -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.12/modules -DOPENCV_ENABLE_NONFREE=True ..
- 注意OPENCV_EXTRA_MODULES_PATH 要根据你的实际情况转变,把它换成你的 contrib 目录下的 modules 目录,在我的电脑上这个目录是
../opencv3.4.12_contrib/modules
, 此外,命令的最后两个.不能落掉 OPENCV_GENERATE_PKGCONFIG=YES
表示自动生成 OpenCV 的 pkgconfig 文件,因此在 /usr/local/lib/pkgconfig 路径可以看到文件 opencv4.pc-DOPENCV_ENABLE_NONFREE=True
表示使用nonfree模块,包括sift等有专利权的模块。
5. 安装OpenCV
- make
sudo make
或
sudo make -j$(nproc)
make -jn
表示用n个系统内核进行编译,如果你知道自己的系统内核数目可以手写,如make -j4
make -j8
等,如果不知道就可以使用make -j$(nproc)
来自动获取内核数量。
有时候使用使用多线程编译会出现一些错误,为了求稳可以直接使用sudo make
, 但是这样会慢一些
2) make install
sudo make install
到这一步代表opencv安装成功,若第4步或第5步中间问题,建议直接删除bulid文件夹,并从建立build文件夹开始重新走一遍。
6.配置环境
- 将OpenCV库添加到系统路径
打开文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
在空白文档中添加(记得保存)
/usr/local/lib
接下来配置库
sudo ldconfig
- 配置系统bash
修改/bash.bashrc
sudo gedit /etc/bash.bashrc
在文件尾添加
export PKG_CONFIG_PATH=/usr/local/opencv/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv/lib
保存,然后执行下面的命令
source /etc/bash.bashrc
7.验证是否成功
- 在终端中输入以下命令,如果安装成功,会显示版本号
pkg-config --modversion opencv
我的是3.4.12,显示如图
2. 测试能否编译运行OpenCV程序
进入opencv-3.4.12/samples/cpp/example_cmake目录,在终端输入以下命令
cmake .
make
./opencv_example
如果成功,你会看到一张自己的脸
二、遇到的问题及解决方法
1. 提示缺少boostdesc_bgm.i
这个问题出现在第4步cmake的过程中。
原因分析:
查看 build 文件夹下的日志文件 CMakeDownloadLog.txt,在日志文件CMakeDownloadLog.txt中搜索 boostdesc_bgm.i 关键词 ,发现这个文件下载失败了。
解决方法:
- 手动进入它的默认下载地址下载
日志文件中有它的下载地址,直接复制到浏览器打开,网络可以的话,能够直接看到它的源码,直接创建一个同名文件,将源码拷贝到里面,放在 opencv_contrib-3.4.12/modules/xfeatures2d/src/ 路径下即可。
总共有以下几个文件,都需要下载并进行相同的操作.(但我在这一步打开网页失败了,所以采用第二种更为简单的方法)
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i
- 直接在下面这个网盘中下载
链接:https://pan.baidu.com/s/17XhXX_cLz46bsj9ZWRkNIg
提取码:p50x
2. 提示xfeatures2d.hpp: 没有那个文件或目录
这个问题出现在第5步的1), 在这一步中还有一些其他文件的报错,如cuda.hpp,nonfree.hpp, 解决方法也是相同的。
解决方法:
- 简单方法
直接更改stitching模块的cmakelist,CMakeLists.txt文件所在路径为:<你的路径>/opencv-3.4.12/modules/stitching/ CMakeLists.txt
然后在CMakeLists.txt增加以下内容:
IINCLUDE_DIRECTORIES("/home/dada/opencv-3.4.12/opencv_contrib-3.4.12/modules/xfeatures2d/include")
具体路径根据你电脑中的路径稍作修改
但有时候这种方法无效,就只能用第二种较为麻烦的方法
- 麻烦方法
在make的时候,默认使用的是相对路径,我们只需要在文件夹中找到相应文件的绝对路径,再将相对路径改成绝对路径就可以了。
比如说在上图的问题中,提示/home/dada/opencv-3.4.12/modules/stitching/src/matchers.cpp:52:10
出现了error,无法按照"opencv2/xfeatures2d.hpp"
这个路径找到这个xfeatures2d.hpp文件。
我们首先在opencv目录中搜索xfeatures2d.hpp文件,有两种方法
1)在终端中执行以下命令
sudo find . -name "xfeatures2d.hpp"
2)在文件管理器OpenCV目录下按ctrl+f进行搜索
最终我们找到这个文件的路径为/home/dada/opencv-3.4.12/opencv_contrib-3.4.12/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp
接下来,我们打开报错的位置/home/dada/opencv-3.4.12/modules/stitching/src/matchers.cpp
这个文件的第52行,将其中的路径改为我们刚刚找到的绝对路径,如图
最后,我们重新进行make(从第5步开始就可以,不需要从第4步开始)。在这一步骤中遇到的其他文件的这个问题也可以用这种方式来解决。
3. 在编译运行程序时提示无法打开"raise.c"
对问题进行搜索,大多数文章都是表示是由于缺少glibc库造成的,如这篇文章,按其中的步骤安装glibc库并更改了launch.json中的路径,依然无效。
最后找到一个治标不治本的方法——将相对路径改为绝对路径,更改后程序可以正常运行
这个问题暂时放在这里,待完全解决后再来更新本文章,如果各位有什么解决方法或建议请发表在评论区或私信笔者,笔者将不胜感激
ubuntu18.04安装OpenCV3.4.12步骤及安装中遇到的一些问题相关推荐
- Ubuntu18.04设置动态ip详细步骤(可视化)
Ubuntu18.04设置动态ip详细步骤 修改网络配置时注意对齐方式,否则容易出错 cd /etc/netplan 可视化打开网络配置文件 sudo gedit etc/netplan/01-net ...
- ubuntu18.04 + windows10双系统使用rEFInd引导(安装rEFInd-minimal主题)
ubuntu18.04 + windows10双系统使用rEFInd引导(安装rEFInd-minimal主题) 安装rEFInd 命令行安装: $ sudo apt-add-repository p ...
- ubuntu18.04 ROS Basler相机详细步骤
网上有很多ubuntu16.4 系统下Basler相机的介绍,但是感觉不是特别的详细,现在我尝试一下 ubuntu18.04 ROS Basler相机图像采集的详细步骤: 一.下载对对应的安装包 并且 ...
- ubuntu18.04 Linux包文件解压和安装,文件夹压缩打包
目录 一.bz2 二.zip和unzip 三.tar .tar.gz tar.xz .tgz 四.deb 五.7z [无法输入中文]Ubuntu18.04中使用中文输入法_Linux教程_云网牛站 - ...
- 使用NVIDIA SDK Manager刷JetPack4.2(Ubuntu18.04)开发套件 + Portable Computing Language (POCL) 安装
# 一. 使用NVIDIA SDK Manager刷机NVIDIA Jetson TX2开发套件 可以参照下面链接刷机 使用NVIDIA SDK Manager刷机NVIDIA Jetson TX2开 ...
- 【VINS-Mono】RealsenseD435i运行VINS-Mono,在ubuntu18.04和opencv3和cv_bridge的报错记录
VINS-Mono(A Robust and Versatile Monocular Visual-Inertial State Estimator) https://github.com/HKUST ...
- Ubuntu18.04进入命令行模式和recovery-mode安装软件
如果不小心删除Ubuntu的桌面程序,那么很有可能进入不了图形化界面,所以需要借助命令行模式或者recovery-mode来解决,如果这时候在外面出差,身边又没有网线,那就悲剧了....0.首先设置r ...
- 拯救者Y9000P 安装Ubuntu18.04 、Ros Melodic等相关配置过程中出现的错误及解决办法
电脑配置:拯救者Y9000P 2022 i9 3060 目录 一.安装Ubuntu18.04 1.安装UltralSO时无法写入镜像文件,显示磁盘/映像空间太小 2.由于2022拯救者Y9000PBI ...
- linux安装python3.7的步骤_Linux 安装python3.7.3
我这里使用的是Redhat6.5,centos系统本身默认安装有python2.x,版本x根据不同版本系统有所不同,可通过 python --V 或 python --version 查看系统自带的p ...
- gcc生成静态库.a和动态库.a以及Ubuntu18.04下opencv3.4.11安装及示例
目录 一.用gcc生成静态库和动态库 (一)hello示例使用库 1.准备过程 2.静态库使用 3.动态库的使用 4.静态库与动态库比较 (二)示例1使用库 二.opencv安装以及使用 (一)认识o ...
最新文章
- 并行化-你的高并发大杀器
- node--静态服务器
- Putty、Xshell连接Linux
- 018对象——对象 get_class get_declared_classes get_declared_interfaces
- “RPC 好,还是 RESTful 好?” 不要选错了!
- (学)新版动态表单研发,阶段成果----1
- 使用mysql备份工具innobackupex进行本地数据备份、恢复操作实例
- One order search dynamic sql statement生成位置
- IPRO_DOCXCC_FILLIN_SIMPLEVARS
- 【Git入门之五】版本管理
- ChineseSemanticKB,面向中文处理的12类、百万规模的语义常用词库存
- Android开发-Hello World+phonegap(Cordova)
- JMETER 各组件执行顺序与作用域
- 「leetcode」700. 二叉搜索树中的搜索:【递归法】【迭代法】详解
- springboot导出excel_在SpringBoot中如何在一分钟内实现快速导出Excel
- scrapy爬取cnnvd网址数据
- 语音识别软件测试面试,软件测试之ASR(语音识别)评测学习
- 软件测试必须知道的缺陷分析
- 容器精华问答 | Docker是否比虚拟技术要好?
- 刻意玩具教具化没用,童心制物如何让孩子真正玩出名堂
热门文章
- 漏洞复现:DNS 缓存投毒的经典—— 2008年 kaminsky 漏洞
- 【高级持续性威胁追踪】来自Mustang Panda的攻击? 我兔又背锅了!
- Unity连接MySQL数据库方法整合
- 通过 TensorFlow 实现 AI 语音降噪提升 QQ 音视频通话质量
- 帝国cms ajax,帝国CMS注册体验加强 ajax检测用户名和密码
- Kafka代码连不上:Recovery is suppressed by NoRestartBackoffTimeStrategy
- String StringBuffer StringBuild区别?
- java管理系统删除报错_Java版学籍管理系统
- Ubuntu下装memcache
- centos下装redis