之前写博客感觉收获很大,但之前因为开题的原因停了好几个月,现在重新回来继续,不过写记录博客不是从之前的位置开始了,因为整个项目要做视觉环境感知,所以这里从Ubuntu的OpenCV配置开始。
内容来源
这篇博客的内容是来源于官方的指导文档1,可以通过链接去查看原文。下面正式开始记录我是如何配置OpenCV3.4.1的。
必要条件
- GCC 4.4.x or later
- CMake 2.8.7 or higher
- Git
- GTK+2.x or higher, including headers (libgtk2.0-dev)
- pkg-config
- Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
- ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
- [optional] libtbb2 libtbb-dev
- [optional] libdc1394 2.x
- [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
- [optional] CUDA Toolkit 6.5 or higher
以上的包可以通过控制台进行安装,通过Ctrl+Alt+T快捷键调出Ubuntu的控制台,然后输入以下命令,当然可以直接复制粘贴到控制台中:
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
其中,第一二行指令是必不可少的,第三行则是可选择的,可装可不装,不过本着有总比没有好的念头,我是直接装了的。
获得OpenCV的源代码
可以从GitHub上获得最新版本的OpenCV代码,当然里面也有最前沿的技术代码,都可以从这里面找到。如果你需要Contrib模块的内容,也可从Git上找到。
以上代码可以直接克隆到本地:
cd ~/<my_working_directory>
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
最新的稳定版本可以从OpenCV的官方网站获得,然后下载并解压到工作目录。
因为目前是边做边学,所以我直接克隆到了本地,克隆到本地之后会在你的工作目录下出现两个文件夹,分别对应你克隆的两部分代码。
用CMake编译OpenCV
这一部分是关键,也是稍微复杂一点的部分,下面详细的记录一下:
1.首先进入克隆的opencv文件夹并创建一个临时文件夹,用来存放Makefile文件,工程文件,目标文件和输出的二进制文件,比如我新建文件名为build,这个名字可以随便取,不过最好全用英文的,不要带中文,以防万一。然后开启一个控制台窗口,将路径切换到建立的文件夹中。
cd ~/opencv #进入到你克隆的opencv目录,注意是克隆到本地的opencv目录里
mkdir build #新建一个build文件
cd build
2.配置,使用CMake编译源代码。
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/> ..
PS:命令中最后的” .. “(空格+两个点)千万不要忘记,OPENCV_EXTRA_MODULES_PATH 就是用来指定要编译的扩展模块,后边加上刚下载的opencv_contrib里的modules模块的路径。CMAKE_BUILD_TYPE=Release\Debug用来指定编译版本的。
3.代码编译
make -j7 #开启7个线程进行编译
4.安装
sudo make install
5.测试
在控制台中将当前路径切换到工作目录下,然后执行以下命令,下载测试例程:
git clone https://github.com/opencv/opencv_extra.git
下载完成之后进入opencv_extra/testdata,执行以下命令
pwd #会显示一个完整的路径
export OPENCV_TEST_DATA_PATH=<输入上面显示的路径> #构建一个临时的环境变量,控制台关闭之后变量失效
cd ~/<path_of_your_opencv>/build/bin #进入你工作目录下的opencv目录下的build目录下的bin目录
./opencv_test_core
然后就会看到如下几张图的效果:
这应该是测试通过了的,下面说有10个无效的测试,回去找没有找到,不过最终结果是PASSED,应该没有问题,到时候万一遇到问题,再解决。