ROS学习【16】-----Ubuntu16.04下openCV的安装及配置


在ROS后阶段的学习中,我们需要学习orb_slam2的项目学习,然而该项目包的学习是需要进行openCv的安装的,因此,林君学长在这里单独写一期ubuntu16.04上OpenCV的版本安装,为后期学习orb_slam2做准备

  • ubuntu版本:ubuntuKylin-16.04
  • opencv版本:opencv-3.4.1

一、官网下载openCV3.4.1

1、openCV官网

1)、官网链接如下:
https://opencv.org/releases/page/3/
在版本中下翻找到openCv3.4.1,如下所示:
在这里插入图片描述
2)、林君学长已经将opencv-3.4.1的源码上传到CSDN后台我的资源模块,小伙伴可以去该资源模块下载哦,下载后,上传至ubuntu系统,然后提取,重命名就好!资源链接如下:
https://download.csdn.net/download/qq_42451251/12334974

2、上传文件到Ubuntu系统上面

1)、将opencv的源码下载到本地后,通过传输软件将该压缩文件上传到ubuntu对应的地方:
在这里插入图片描述

二、opencv的安装

1、解压到当前目录

1)、打开终端,进行解压

unzip opencv-3.4.1.zip

在这里插入图片描述
2)、进入opencv文件夹

cd opencv-3.4.1

2、下载安装依赖库和编译工具cmake

1)、安装cmake

sudo apt-get install cmake  

在这里插入图片描述
由于林君学长之前安装过,所以是以上界面,大家安装就好
2)、安装依赖库

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev  

在这里插入图片描述

3、创建编译文件夹,进行编译

1)、创建编译文件夹,用于放编译文件

mkdir my_build
cd my_build

2)、进行文件配置

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

在这里插入图片描述

4、编译安装opencv-3.4.1

1)、进行源码包的编译,如下命令

sudo make -j8

以上为8线性编译,只为了加快速度,如果有的小伙伴电脑配置低,不支持8线程编译,可以减低线程,选择4线程编译

sudo make -j4

2)、编译成功如下所示:
在这里插入图片描述
通过8线程编译,时间很短,大约15-20分钟就可以成功编译
3)、对opencv-3.4.1进行安装

sudo make install

在这里插入图片描述

5、对openCv进行配置

1)、将OpenCV的库添加到路径

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

2)、在打开文文件末添加如下代码:

/usr/local/lib  

在这里插入图片描述
保存后关闭
3)、使得配置路径生效

sudo ldconfig  

4)、打开环境变量配置文件,配置环境变量

sudo gedit /etc/bash.bashrc  

5)、在文件末尾添加如下环境变量代码:

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

在这里插入图片描述
保存后关闭哦!
6)、同样的,使得环境变量生效

source /etc/bash.bashrc 

7)、更新数据

sudo updatedb  

到这里,我们opencv的配置就完成了!接下来,我们需要对openCV进行测试,检测我们的openCV是否安装配置成功!

三、编程程序、测试openCV是否安装完成

1、创建测试文件夹并创建测试cpp文件

1)、创建文件夹及测试文件

cd ..
mkdir mytest
touch test.cpp

2)、打开该文件,写入c++语言代码进行测试:

sudo gedit  /test.cpp

3)、在文件中写入如下代码
注意:图片应该放在我们创建的mytest文件夹中哦!

#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
	CvPoint center;
    double scale = -3; 
	IplImage* image = cvLoadImage("my.jpg");
	argc == 2? cvLoadImage(argv[1]) : 0;
	cvShowImage("Image", image);
	if (!image) return -1; 	center = cvPoint(image->width / 2, image->height / 2);
	for (int i = 0;i<image->height;i++)
		for (int j = 0;j<image->width;j++) {
			double dx = (double)(j - center.x) / center.x;
			double dy = (double)(i - center.y) / center.y;
			double weight = exp((dx*dx + dy*dy)*scale);
			uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);
			ptr[0] = cvRound(ptr[0] * weight);
			ptr[1] = cvRound(ptr[1] * weight);
			ptr[2] = cvRound(ptr[2] * weight);
		}
	Mat src;Mat dst;
	src = cvarrToMat(image);
	cv::imwrite("test.png", src);
    cvNamedWindow("test",1);  	imshow("test", src);
	 cvWaitKey();
	 return 0;
}

保存文件后关闭!

2、编译测试的c++语言代码

1)、编译

g++ test.cpp -o test `pkg-config --cflags --libs opencv`

编译之后,该文件夹中会生成一个可执行文件:test,如下所示:
在这里插入图片描述
2)、运行
运行该文件:

./test

运行结果如下所示:
在这里插入图片描述
出现以上结果,表示我们的opencv安装配置成功,一切OK,运行后,该文件夹中会生成一个test图片:
在这里插入图片描述
到这里,我们的opencv就安装完成啦,是不是很简单呢!
以上就是本次博客的全部内容,希望可以帮助大家理解opencv的安装哦,这也是为后面的ros学习中的orb_slam2的学习的一个奠基!
遇到问题的小伙伴记得评论区留言,林君学长看到为会大家解答的,这个学长不太冷!

陈一月的又一天编程岁月^ _ ^

发布了81 篇原创文章 · 获赞 119 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_42451251/article/details/105565305
今日推荐