200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Ubuntu安装opencv_contrib

Ubuntu安装opencv_contrib

时间:2018-07-03 09:14:34

相关推荐

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

登陆/下载.debvscode。一般会下载到~/下载目录

随后键入以下命令

$ sudo pdg -i vscode

完成安装。

下载opencv opencv contrib

据说ubuntu好用的下载器是uget + aria2组合可以加速,但在我的电脑上不work,下载opencv的速度很慢,这个下载过程请读者自行解决。

opencv下载地址:/opencv/opencv/archive/3.4.9.zip

opencv_contrib下载地址: /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__lnx_intel64_general_0723.tgz

下载地址:/opencv/opencv_3rdparty/ippicv/master_0723/ippicv/ippicv__lnx_intel64_general_0723.tgz。如果下载速度过慢,可以使用github代下载服务:/,永久免费,值得拥有。下载好后,解压文件并修改source文件夹里面的99bcc121813401857e2a8027ae9b3c81_1593744729.tgz文件名称修改为ippicv__lnx_intel64_general_0723.tgz

下载好后,将/path/to/opencv3.4.9/sources/3rdparty/ippicv/ippcv.cmake中的第47行改为file:/path/to/ippicv__lnx_intel64_general_0723.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/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;}

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

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程序了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。