ubuntu 18.04 安装opencv3.4.5+opencv_contrib

ubuntu 18.04 安装opencv3.4.5+opencv_contrib

1、安装包下载

opencv以及opencv_contrib下载

注意版本要一致

opencv 下载 opencv官网
opencv_contrib 下载 github

2、安装依赖包

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-dev
sudo apt-get install pkg-config
cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/tjk/opencv/opencv-3.4.5/opencv_contrib-3.4.5/modules/   -D OPENCV_ENABLE_NONFREE=True ..

3、安装opencv

将下载好的安装包解压

//解压安装包
sudo unzip opencv-3.4.5.zip
sudo tar zxvf opencv_contrib-3.4.5.tar.gz

此时你的包可能还在下载的那个文件夹,这里最好在主目录下在重新建立一个文件夹然后把解压后的包移动进去.

然后将解压后的contrib文件移动至opencv-3.4.5文件下
sudo cp -r opencv_contrib-3.4.5 opencv-3.4.5
并在opencv-3.4.5文件夹中新建build文件夹用于后续编译和生成。

cd opencv-3.4.5                               #进入opencv文件夹
sudo mkdir build                              #新建文件夹build

进入bulid文件夹并进行cmake

cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv-3.4.5/opencv_contrib-3.4.5/modules/ -D OPENCV_ENABLE_NONFREE=True ..

注意后面的两点不可省略,代表其他参数默认。
注意 OPENCV_EXTRA_MODULES_PATH 代表你放置opencv_contrib的modules文件夹的真实地址
将上述命令执行之后会发现存在一些问题,主要是一些文件的下载问题,包括ippicv和face_landmark_model.dat以及fatal error: boostdesc_bgm.i: vgg_generated_80. vgg_generated_120.i没有那个文件或目录 。
生成完毕会出现以下画面

--   Install path:                  /usr/local
-- 
--   cvconfig.h is in:              /home/files/opencv-3.4.5/build
-- -----------------------------------------------------------------
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/files/opencv-3.4.5/build

这里先看一下下面的出错问题,然后解决以下在make,争取一次成功

//然后进行make
sudo make -j8   #j后面的数字代表用几个线程编译,此为8线程

然后大概率会出错 ,如下:
在这里插入图片描述其实搜索这个错误网上也有不少解决方法,我使用的就是直接在报错的文件中,把头文件修改了,如下:

#ifdef HAVE_OPENCV_XFEATURES2D
//(原来的头文件)
//#include "opencv2/xfeatures2d/cuda.hpp" 
//(修改后的头文件)
#include"/home/tjk/opencv/opencv-3.4.5/opencv_contrib-3.4.5/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
#endif

然后可能还会有一个错误,反正我是遇到了,
fatal error: boostdesc_bgm.i: vgg_generated_80. vgg_generated_120.i没有那个文件或目录

这个问题是一堆文件的缺失,包括
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
所以只需要将这些文件下载然后放置到opencv_contrib/modules/xfeatures2d/src/ 路径下即可。
当然,这些文件的下载路径可以在cmake//日志中查看,直接复制其下载地址到网页可以看该到文件的源码,直接拷贝源码并生成同名文件然后放置到opencv_contrib/modules/xfeatures2d/src/ 路径下即可。
或者从百度网盘中下载,然后解压并将这些文件放置到opencv_contrib/modules/xfeatures2d/src/ 路径下即可。
百度云盘连接
链接: 密码: os8l
解决完这些错误,可以继续
sudo make -j8
也有的教程建议删除build文件夹,在重来一次,两种我都试过,都可以。

然后执行:sudo make install

到这里就安装完了

4、配置环境变量

打开文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
在空白文档中添加

/usr/local/lib

接下来配置库
sudo ldconfig
更改环境变量
sudo gedit /etc/bash.bashrc

在文件最后加上

export PKG_CONFIG_PATH=/usr/local/opencv/lib/pkgconfig 
export LD_LIBRARY_PATH=/usr/local/opencv/lib 

5、测试

这里说两个方式:

第一种:

直接在vim 中写,

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main()
{
    VideoCapture cap(0);
    while(1)
    {
        Mat frame;
        cap >> frame;
        imshow("1",frame);
        if(waitKey(10) == 'q')
        {
           break;
        }
    }
}

如图:
在这里插入图片描述
然后在命令编译运行
如下:

g++ main.cpp `pkg-config opencv --cflags --libs opencv`
./a.out

在这里插入图片描述
然后就会打开笔记本的摄像头出现图像了。

第二种:

使用qt ,这个比较简单,也方便
如图,需要注意以下。.pro文件的写法。
在这里插入图片描述然后直接运行就好。

发布了19 篇原创文章 · 获赞 52 · 访问量 7885

猜你喜欢

转载自blog.csdn.net/qq_33728095/article/details/104256301
今日推荐