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前的准备工作

  1. 手动下载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,含义是替换网络下载为本地下载。

  1. 安装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/sourcesBrowse 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;
}

说一下在我的环境里面遇到的一些问题:

  1. 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路径下
  1. 编译参数

初始编译选择g++-9,参数选择 “-g -c -o”,输出文件格式选择".o" 如下:

# tasks.json
"args": ["-g","${file}","-c","-o","${fileDirname}/${fileBasenameNoExtension}.o",
],
  1. 链接参数
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
  1. 执行的问题

执行的时候抛出
./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相关推荐

  1. ubuntu安装opencv_contrib扩展库,附踩坑+测试

    博主昨晚需要用到OpenCV的SURF接口,但是发现无法调用,因为没有头文件.于是查阅了下资料,发现这些库已经被美国买下专利,成为付费库,都在opencv_contrib中.如果你已经安装了OpenC ...

  2. ubuntu 安装 opencv

    ubuntu 安装 opencv https://blog.csdn.net/yifa3588/article/details/78284794 cmake -D CMAKE_BUILD_TYPE=R ...

  3. 基于Ubuntu安装opencv以及相关操作

    目录 一.基于Ubuntu下安装opencv 二.相关操作之图片 三.相关操作之视屏 四.总结 五.参考资料 一.基于Ubuntu下安装opencv 1.opencv依赖环境的安装 1.1 安装cma ...

  4. Ubuntu安装MongoDB

    https://jingyan.baidu.com/article/e5c39bf5f5ddd539d76033a9.html Ubuntu安装MongoDB4.0: https://www.jian ...

  5. ubuntu安装OpenCV详细教程(建议收藏)

    记录一篇"如何安装ubuntu下C++接口的opencv"的文章.由于转载格式有问题,直接贴个链接:ubuntu安装opencv的正确方法 注意:本人根据此博客安装遇到的问题:2. ...

  6. 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 ...

  7. debian,ubuntu 安装mongodb 允许外网访问,修改端口,设置用户和密码

    使用apt安装mongodb: apt update && apt install mongodb 查看运行状态: systemctl status mongodb.service 结 ...

  8. ubuntu安装KVM

    ubuntu安装KVM 现在官网下载ubuntu镜像,桌面版或者服务端都可,这里以桌面端为例. 安装之前确保磁盘有足够大的空间(这很重要) 安装KVM sudo apt install qemu-kv ...

  9. 解决Ubuntu安装依赖问题

    解决Ubuntu安装依赖问题 解决Ubuntu安装依赖问题 最主要问题,修改的国内镜像源可能不是对应的ubuntu版本,大部人直接找了个镜像源就复制到source.list里面了,其实需要对应版本的, ...

最新文章

  1. android端使用http2.0,android Retrofit2+okHttp3使用总结
  2. 关于webpack的使用
  3. 2月第二周.COM增近12万 ×××域名.XXX减122个
  4. 【LeetCode】53.最大子序和
  5. 从零开始入门 K8s | 调度器的调度流程和算法介绍
  6. [翻译]ElasticSearch官方文档-安装
  7. 解决安装pytorch慢的方法(pip安装)
  8. 标准正态分布_正态分布,正态分布如何变换为标准正态分布
  9. linux无法将文件移入回收站,linux中使用rm命令将文件移到回收站的方法
  10. iOS模拟器上NSHomeDirectory和resourcePath的根路径不同
  11. java double 值是6.346255785955615E-4,这是字母“E”什么意思
  12. NGINX上PHP header问题
  13. echo输出不重复行到文件 shell_Shell脚本echo指令使用小技巧
  14. 面试要10K,HR说你只值7K,怎么斗得过?
  15. Java语法总结 - 方法
  16. java 打印出库单_使用Jasperreporter生成入库出库单打印等报表操作
  17. 面试 之 git工作流
  18. 低频电子线路学习笔记
  19. xp系统无法自动修复此计算机该怎么解决,WinXP不能正常启动的修复方法
  20. 【前端作业系列】HTML基础点 , 训练<有序列表><无序列表>(2022年6月15日作业)

热门文章

  1. 如何解决ios横竖屏切换布局错乱的问题
  2. pdf文件有密码怎么解除
  3. 计算机黑屏但是有鼠标,电脑黑屏但是能看到鼠标怎么办
  4. MATLAB中通过Library Compiler生成dll
  5. 云南b系列服务器机柜,标准B型网络服务器机柜
  6. 带式输送机、采样控制系统、变速器、离心成型机、齿轮减速器、三级减速器、蜗轮减速机、多向混合机、颗粒包装机、机床夹具、球阀、支撑掩护式液压支架、轮式移动机器人、液压传动、轴向柱塞泵…毕业设计 课程设计
  7. “我辞退了一位学位学历造假的程序员”
  8. quest3d通道英汉对照部分
  9. Wine零知识学习2 —— 源码下载、构建与安装
  10. 支付系统之应用内支付