Ubuntu安装opencv_contrib
Ubuntu+vscode+Opencv+Opencv_contrib C++ support环境搭建流程
之前我们介绍了Windows搭建vscode opencv contrib的流程。由于后期需要用到linux开发,所以需要在linux上搭建相应的环境。本文完整介绍了如何在ubuntu环境下进行opencv环境搭建的流程。
系统要求:ubuntu20.04:
软件要求:vscode latest, opencv 3.4.9, opencv_contrib 3.4.9, mingw-w64, cmake-gui工具。
下载并安装vscode
登陆https://code.visualstudio.com/
下载.deb
vscode。一般会下载到~/下载
目录
随后键入以下命令
$ sudo pdg -i vscode
完成安装。
下载opencv opencv contrib
据说ubuntu好用的下载器是uget + aria2
组合可以加速,但在我的电脑上不work,下载opencv的速度很慢,这个下载过程请读者自行解决。
opencv下载地址:https://github.com/opencv/opencv/archive/3.4.9.zip
opencv_contrib下载地址: https://github.com/opencv/opencv_contrib/releases/tag/3.4.9
下载cmake-gui工具和mingw-w64
运行以下命令即可:
$ sudo apt install cmake-qt-gui
$ sudo apt install mingw-w64
接下来就是如何编译opencv。为了让读者少踩坑,这里将一些编译前的准备工作介绍一下:
编译opencv前的准备工作
- 手动下载
ippicv_2019_lnx_intel64_general_20180723.tgz
下载地址:https://raw.githubusercontent.com/opencv/opencv_3rdparty/ippicv/master_20180723/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz
。如果下载速度过慢,可以使用github代下载服务:http://g.widora.cn/
,永久免费,值得拥有。下载好后,解压文件并修改source文件夹里面的99bcc121813401857e2a8027ae9b3c81_1593744729.tgz
文件名称修改为ippicv_2019_lnx_intel64_general_20180723.tgz
。
下载好后,将/path/to/opencv3.4.9/sources/3rdparty/ippicv/ippcv.cmake
中的第47行改为file:/path/to/ippicv_2019_lnx_intel64_general_20180723.tgz
,含义是替换网络下载为本地下载。
- 安装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
编译安装opencv
打开cmake-gui,Browse Source
为/path/to/opencv3.4.9/sources
,Browse Build
为/path/to/opencv3.4.9/build/x64/LinuxBuild
,该文件夹需要自己创建。随后点击Configure
按钮。CmakeSetup窗口默认就行(Windows下面需要指定mingw g++编译器,ubuntu默认即可,当然也可以切换成mingw g++编译器),如下所示
随后
1. 在搜索栏搜索EXTRA
,将OPENCV_EXTRA_MODULE_PATH
的值改成/path/to/opencv_contrib-3.4.9/modules
。
2. 搜索world
,修改BUILD_opencv_world
的值为选中,如果默认选中就不管。
然后再点击Configure
--> Generate
。
打开terminal,执行
$ cd /path/to/opencv3.4.9/build/x64/LinuxBuild/
$ sudo make -j8 # 编译,等待时间有点漫长,中间有些警告不管
$ sudo make install # 进行安装
随后可以在/usr/local/lib文件夹看到有libopencv的库了。
在vscode中使用opencv
这个过程和在windows下使用opencv类似,可参考我的另外一篇文章vscode-c++-opencv-opencv_contrib安装教程.pdf
。不过似乎不用设置c_cpp_properties.json
也不会报错。
#include <vector>
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <io.h>
#include <algorithm>
#include <opencv2/core/utility.hpp>
#include <opencv2/video/tracking.hpp>
#include <opencv2/tracking/tracker.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp>int main()
{cv::Mat image = cv::imread("/path/to/test.jpg");cv::imshow("test", image);cv::waitKey(0);system("pause");return 0;
}
说一下在我的环境里面遇到的一些问题:
io.h
等一些头文件可能找不到的问题;
解决方案:linux默认会在/usr/include下找头文件,如果找不到,就需要在/usr/include
的子文件夹下搜该头文件,如下:
$ cd /usr/include
$ find ./ -name "io.h"
# /usr/include/x86_64-linux-gnu/sys/io.h
$ cp /usr/include/x86_64-linux-gnu/sys/io.h /usr/include # 拷贝到include路径下
- 编译参数
初始编译选择g++-9
,参数选择 “-g -c -o”,输出文件格式选择".o" 如下:
# tasks.json
"args": ["-g","${file}","-c","-o","${fileDirname}/${fileBasenameNoExtension}.o",
],
- 链接参数
g++ \
-std=c++11 \
-g \
-o ./test_opencv \
./test_opencv.o \
-I /usr/local/include \
-I /usr/local/include/opencv \
-I /usr/local/include/opencv2 \
-I /home/wyx/software/opencv_contrib-3.4.9/modules/tracking/include \
-l opencv_world
- 执行的问题
执行的时候抛出
./test_opencv: error while loading shared libraries: libopencv_world.so.3.4: cannot open shared object file: No such file or directory
错误。
这个错误是说你的opencv_world库找不到,需要在linux的共享库配置文件里面修改,具体如下:
$ cd /etc/ld.so.conf.d
$ sudo vim opencv.conf
# 在其中加入/usr/local/lib/,opencv安装好后会把libopencv_world.so文件放到这个路径下
$ sudo ldconfig # 使配置生效
应该就可以运行opencv程序了。
Ubuntu安装opencv_contrib相关推荐
- ubuntu安装opencv_contrib扩展库,附踩坑+测试
博主昨晚需要用到OpenCV的SURF接口,但是发现无法调用,因为没有头文件.于是查阅了下资料,发现这些库已经被美国买下专利,成为付费库,都在opencv_contrib中.如果你已经安装了OpenC ...
- ubuntu 安装 opencv
ubuntu 安装 opencv https://blog.csdn.net/yifa3588/article/details/78284794 cmake -D CMAKE_BUILD_TYPE=R ...
- 基于Ubuntu安装opencv以及相关操作
目录 一.基于Ubuntu下安装opencv 二.相关操作之图片 三.相关操作之视屏 四.总结 五.参考资料 一.基于Ubuntu下安装opencv 1.opencv依赖环境的安装 1.1 安装cma ...
- Ubuntu安装MongoDB
https://jingyan.baidu.com/article/e5c39bf5f5ddd539d76033a9.html Ubuntu安装MongoDB4.0: https://www.jian ...
- ubuntu安装OpenCV详细教程(建议收藏)
记录一篇"如何安装ubuntu下C++接口的opencv"的文章.由于转载格式有问题,直接贴个链接:ubuntu安装opencv的正确方法 注意:本人根据此博客安装遇到的问题:2. ...
- Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/redis-server.
此文首发于我的个人博客:Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/r ...
- debian,ubuntu 安装mongodb 允许外网访问,修改端口,设置用户和密码
使用apt安装mongodb: apt update && apt install mongodb 查看运行状态: systemctl status mongodb.service 结 ...
- ubuntu安装KVM
ubuntu安装KVM 现在官网下载ubuntu镜像,桌面版或者服务端都可,这里以桌面端为例. 安装之前确保磁盘有足够大的空间(这很重要) 安装KVM sudo apt install qemu-kv ...
- 解决Ubuntu安装依赖问题
解决Ubuntu安装依赖问题 解决Ubuntu安装依赖问题 最主要问题,修改的国内镜像源可能不是对应的ubuntu版本,大部人直接找了个镜像源就复制到source.list里面了,其实需要对应版本的, ...
最新文章
- android端使用http2.0,android Retrofit2+okHttp3使用总结
- 关于webpack的使用
- 2月第二周.COM增近12万 ×××域名.XXX减122个
- 【LeetCode】53.最大子序和
- 从零开始入门 K8s | 调度器的调度流程和算法介绍
- [翻译]ElasticSearch官方文档-安装
- 解决安装pytorch慢的方法(pip安装)
- 标准正态分布_正态分布,正态分布如何变换为标准正态分布
- linux无法将文件移入回收站,linux中使用rm命令将文件移到回收站的方法
- iOS模拟器上NSHomeDirectory和resourcePath的根路径不同
- java double 值是6.346255785955615E-4,这是字母“E”什么意思
- NGINX上PHP header问题
- echo输出不重复行到文件 shell_Shell脚本echo指令使用小技巧
- 面试要10K,HR说你只值7K,怎么斗得过?
- Java语法总结 - 方法
- java 打印出库单_使用Jasperreporter生成入库出库单打印等报表操作
- 面试 之 git工作流
- 低频电子线路学习笔记
- xp系统无法自动修复此计算机该怎么解决,WinXP不能正常启动的修复方法
- 【前端作业系列】HTML基础点 , 训练<有序列表><无序列表>(2022年6月15日作业)
热门文章
- 如何解决ios横竖屏切换布局错乱的问题
- pdf文件有密码怎么解除
- 计算机黑屏但是有鼠标,电脑黑屏但是能看到鼠标怎么办
- MATLAB中通过Library Compiler生成dll
- 云南b系列服务器机柜,标准B型网络服务器机柜
- 带式输送机、采样控制系统、变速器、离心成型机、齿轮减速器、三级减速器、蜗轮减速机、多向混合机、颗粒包装机、机床夹具、球阀、支撑掩护式液压支架、轮式移动机器人、液压传动、轴向柱塞泵…毕业设计 课程设计
- “我辞退了一位学位学历造假的程序员”
- quest3d通道英汉对照部分
- Wine零知识学习2 —— 源码下载、构建与安装
- 支付系统之应用内支付