【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib

写在最前:

看了一段时间的视觉SLAM。出于兴趣想在Windows上实现一个简单的RGBD SLAM小程序并且能够显示点云,于是找到了OpenCV中viz模块的例子,把其中viz模块在Windows上的编译过程分享出来。

我使用的环境是Windows 10 64bit,Visual Studio 2015, OpenCV310+OpenCV contrib, CMake-gui3.6.0,VTK 710。
源代码的下载使用Git Shell,可以安装Github desktop简单得到Git Shell。

为了能够显示点云,我们需要一个能够显示点云的“窗口”,OpenCV的VIZ模块可以实现这个功能。
那么如何能够获得含有VIZ模块的OpenCV是接下来要解决的问题。

提示:VTK的编译和OpenCV的编译过程比较耗时,可以分开来进行。

简单描述步骤如下:

首先下载VTK源代码,使用CMake生成可用Visual Studio编译的工程,然后用Visual stduio打开对应的工程进行编译。
然后下载OpenCV 3.1.0和OpenCV contrib源代码,使用CMake生成链接了VTK库的工程,并用Visual studio打开相应工程进行编译。

具体过程

1.使用git shell下载VTK 7.1.0源代码,并退回到原始目录

git clone https://gitlab.kitware.com/vtk/vtk.git VTK
cd VTK
git checkout v7.1.0
cd ..
【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第1张图片
VTK710下载.PNG

2.使用CMake生成可用Visual Studio编译的工程

打开CMkae,点击 Browse Sourse 按钮选择下载好的VTK710源码。(本例中代码位于D:\Temp\VTK
手动新建一个buildVTK文件夹用来存放生成的工程。(本例中位于D:\Temp\buildVTK,你也可以放在VTK目录下或别的地方)
在CMake中,点击 Browse Build 按钮,选择新建的build目录。(本例中位于D:\Temp\buildVTK
然后点击 Configure按钮,弹出的编译器选择窗口,本例中选择默认值并直接点击 Finish

Configure完成之后我们需要做三处修改。
首先修改CMAKE_INSTALL_PREFIX目录到build目录,由于默认目录涉及权限问题。

【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第2张图片
修改VTK安装目录.PNG

然后修改INSTALL的五个目录到对应位置。(本例中位于D:/Temp/buildVTK/目录下)

【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第3张图片
修改VTK的INSTALL目录.PNG

最后修改VTK_RENDERING_BACKEND为OpenGL,由于OpenCV默认使用OpenGL,而VTK7.1.0默认使用OpenGL2。

【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第4张图片
修改VTK渲染使用OpenGL.PNG

再点击一次Configure 按钮,让CMake处理更改。
点击Generate按钮生成Visual Studio工程。

3.使用Visual Studio编译VTK710工程

D:\Temp\buildVTK目录下找到VTK.sln,并双击打开。
右键点击ALL BUILD并点击build进行编译。

【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第5张图片
Visual Studio编译VTK710.png

这时候你可以稍事休息,等待编译完成。
编译完成之后右键点击INSTALL,并点击Project Only,点击Project Only INSTALL
整个过程完成之后,你已经完成了VTK710在Windows上的编译和安装。
(本例中安装目录位于D:/Temp/buildVTK/目录下)

4.使用git shell下载OpenCV310和OpenCV contrib源码,并退回到上级目录

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 3.1.0
cd ..
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 3.1.0
cd ..
【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第6张图片
OpenCV和OpenCV contrib下载.PNG

5.使用CMake生成可用Visual Studio编译的工程

基本步骤类似于第二步,新启动一个CMake-gui。并建立一个buildOpenCV目录。(本例位于D:\Temp\buildOpenCV
Browse Sourse选择D:/Temp/opencv
Browse Build选择D:/Temp/buildOpenCV
点击Configure按钮,点击Finish开始配置工程。

配置之后需要做两处修改。
OPENCV_EXTRA_MOULES_PATH设置为D:/Temp/opencv_contrib/modules

【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第7张图片
OPENCV CONTRIB目录配置.PNG

VTK_DIR目录配置为D:/Temp/buildVTK

【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第8张图片
VTK_DIR.PNG

点击Configure按钮,针对修改项进行配置。
点击Generate按钮,生成Visual Studio可编译的工程。

【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第9张图片
OpenCV Generate.PNG

6.使用Visual Studio编译生成的OpenCV工程

步骤类似于第三步。
D:\Temp\buildOpenCV目录下找到OpenCV.sln,并双击打开。
右键点击ALL BUILD并点击build进行编译。

【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第10张图片
build OpenCV.PNG

这时候你可以再次稍事休息,等待编译完成。

同样的,编译完成之后右键点击INSTALL,并点击Project Only,点击Project Only INSTALL
整个过程完成之后,你已经完成了OpenCV310+OpenCV contrib+Viz模块在Windows上的编译和安装。
(本例中安装目录位于D:\Temp\buildOpenCV\install目录下)

测试

通过搜索可以看到已经成功编译生成了viz.hpp文件。
在Visual Studio中通过#include引用

【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib_第11张图片
viz.PNG

所书教程如有错误、不当之处,欢迎批评、指正 —— 曦沉

你可能感兴趣的:(【教程】使用CMake编译含有viz.hpp的OpenCV310+OpenCV contrib)