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的学习的一个奠基!
遇到问题的小伙伴记得评论区留言,林君学长看到为会大家解答的,这个学长不太冷!
陈一月的又一天编程岁月^ _ ^