ubuntu20.04编译安装并配置opencv3.4.5核心库以及贡献库

  opencv是我们日常开发中经常使用的一种库,常用于处理一些图像信息,我在前几天安装的过程中遇到了一些问题,不过最终还是安装好了,所以在这里记录一下自己的安装过程

下载资源包

  在github上下载opencv与opencv_contrib资源包(链接在下面),注意,opencv的版本一定要与contrib对应,此外,opencv4需要处c++ 11的支持,所以如果没有c++ 11, 可以下载4.0以下的版本,再git上切换版本的位置在下图中,先点击master,切换到tags面板,再选择相应的版本下载即可
opencv opencv_contrib
在这里插入图片描述

安装依赖库

sudo apt-get installbuild-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

  注意,在执行上述第三条命令的时候,可能会出错,提示E:Unable to locate package等错误,此时需要添加源,执行下述语句就可以了

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt-get update

  执行完上述命令后,再次执行第三条命令就成功了

编译安装

  首先将opencv_contrib移动到opencv目录下,为了方便对两个文件夹改名,分别去除其版本号(例如将opencv3.4.5改为opencv),新建文件夹build,进入,在其中打开终端执行命令

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D DOPENCV_GENERATE_PKGCONFIG=ON ..

  等待上述命令执行完后,同样在build文件夹下执行make命令,这个过程会花挺多的时间,耐心等待,但是你可能会遇到错误提示:缺少boostdesc_bgm.i文件,这时在下面百度网盘链接下载几个文件,下载完成后将其解压,并将所有.i文件复制到opencv/opencv_contrib/modules/xfeatures2d/src/ ,然后make clean后再次make
链接: 百度网盘 密码: ipk5
  同样你可能还会遇到提示fatal error:opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录错误,这很有可能是你没有安装cuda的原因,所以此时先安装cuda就可以解决这个问题了,安装完成后执行下述命令

make clean
make
make install

  当上述两个问题没有解决的时候,如果你用不到贡献库,此时可以选择只安装opencv:先删除opencv包,重新解压一个新的opencv包(opencv_contrib用不到了,不需要解压),再在里面新建一个build文件夹,在build文件夹下执行下述命令就可以完成安装了

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make
suao make install

配置环境变量

  在第一步在网上提供两种不同配置方式,因为我两个都进行了但是不清楚具体哪个是有用的,所以建议两个都进行配置一下
  方式1

sudo gedit /etc/ld.so.conf.d/opencv.conf

  打开可能是空的,在文末添加

  /usr/local/lib

  方式2

sudo gedit /etc/ld.so.conf

  打开也可能是空的,在文末添加

include /usr/loacal/lib 

  执行完后要更新系统的共享链接库

sudo ldconfig

  接着修改bash.bashrc文件

sudo gedit /etc/bash.bashrc 

  在文末添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH 

  保存,这时先不要关闭这个bash文件,直接在刚才的终端执行下述语句

source /etc/bash.bashrc  

  关闭打开的bsh文件

测试环境是否配置成功

  在Home下创建文件夹opencv_lena,进入执行下述命令编辑文件

gedit DisplayImage.cpp

  在其中输入如下代码

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
	if ( argc != 2 )
	{
		printf("usage: DisplayImage.out <Image_Path>\n");
		return -1;
	}
	Mat image;
	image = imread( argv[1], 1 );
	if ( !image.data )
	{
		printf("No image data \n");
		return -1;
	}
	namedWindow("Display Image", WINDOW_AUTOSIZE );
	imshow("Display Image", image);
	waitKey(0);
	return 0;
}

  保存关闭,还是在此处执行命令编辑文件

gedit CMakeLists.txt

  在其中添加如下代码(VERSION2.8不需要修改)

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

  编译(在opencv-lena文件夹下在终端打开执行)

cmake .
make

  随便找一张图片,将其命名为lena.jpg,并将其放在opencv-lena下,注意,上述的cpp文件,txt文件与jpg文件都在这个文件下,在opencv_lena下打开终端,执行下述命令,如果能看到图片弹出就证明配置成功了

./DisplayImage lena.jpg
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页