1.安装cmake
首先安装cmake,可以使用终端命令安装:
sudo apt-get install cmake
但是安装的版本会比较低(记得是2.X)。
建议去官网下载更高的版本,否则后面编译会出错:
https://cmake.org/download/
本文使用的版本为3.14.3。
下载完成后,进入下载文件目录(Downloads),把cmake-3.14.3.tar.gz放置到任意其它目录。
我放到了/home路径:
sudo cp cmake-3.14.3.tar.gz /home
接着,解压:
sudo tar -zxvf cmake-3.14.3.tar.gz
解压好后,进入该文件夹
cd cmake-3.14.3
安装opencv的依赖项(参照SLAM14讲):
sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev
稍等片刻。完成后,执行
sudo ./bootstrap
稍等片刻。继续执行
sudo make
执行
sudo make install
执行
cmake -version
输出
cmake version 3.14.3
即完成了cmake的安装。
2.安装opencv
这里注意,不要下载最高版本的opencv。后面用cmake编译代码时,会用到opencv的配置文件,如果它的版本比较高,会显示无法兼容而无法完成编译。因为个人学习需要,我就使用了教材里的3.1.0的版本。
下载地址:
https://opencv.org/releases/
往后翻页,找到Linux对应版本下载即可。
下载的是一个名为“opencv-3.1.0.zip”的压缩包,将它解压到任意目录下,发现它其实是个cmake工程。
进入解压好的文件夹。依次执行
sudo mkdir build
cd build
sudo cmake ..
sudo make
执行完“make”,会开始比较长时间的编译,视机器配置,持续时间从20分钟到一小时不等。(我用了约三四十分钟)
完成后,执行
sudo make install
稍等片刻,opencv的环境就安装好了,可以在/home/usr/local下找到它的头文件和库文件(名为include、share等文件夹里)
遇到的问题:
我在上面执行cmake时,显示“ippicv”的包无法下载,超时报错。
解决办法是去网上搜索“opencv 3.1 ippicv”,手动下载“ippicv_linux_20151201”这个包。去opencv-3.1.0/3rdparty/ippicv/downloads/linux-xxxxx路径下把.tgz那个包替换掉,然后重新cmake即可。
cd /home/opencv-3.1.0/3rdparty/ippicv/downloads/linux-xxxxx
这里进入路径有个技巧,Linux终端输入路径或文件名称时,可以打个开头,然后按一下Tab,系统会自动补全全名。(所以上面命令最后我用xxxxx省略)
删除未完成下载的包:
sudo rm -r ippicv-xxxxx
接着把新下载的包放到这个路径下就ok了。
最后重新cmake→make→make install,完成opencv环境的安装。
3.测试
此处采用SLAM十四讲第五章的代码测试,功能是opencv图像的读取和显示。cmakelist已经写好,代码和测试图片“ubuntu.png”放在同一路径下。直接编译
sudo cmake
sudo make
生成临时文件和名为“imageBasics”的可执行文件。
输入参数调用程序:
./imageBasics ubuntu.png
成功显示了图片。输出图像信息和用时:
图像宽为1200,高为674,通道数为3
遍历图像用时0.0465694秒。