整整5天,为了弄个三维重建的源代码,整了好几天。真尼玛郁闷。为了让以后有用到的少走一些弯路,同时也为了让自己记住这次的艰难,记录一下。
首先说一下我的环境是:
操作系统:windows7 32位
编译环境:vs2010
源代码:PCL1.6
下面提供几个下载地址,当时为了源代码费了很大的劲,因为我找到几篇博客原来给的网址不能用了,让我找了半天,在如下网址找到了:
svn源代码网址:https://github.com/PointCloudLibrary/pcl/releases
上面这个网址包含了各种版本的源代码,从1.0开始,到以后的,现在更新到1.7了吧。
最新版本:New Version 1.7.1
首先提供几个软件的下载:
http://pointclouds.org/downloads/windows.html 这里面下载用到的各种软件,我没有用all-in-one,原因是:我看的那篇博客说不要用它,我也不知道为什么不用。当然网上也有很多配置all-in-one的教程,我这里提供一个,但是我没有试试,我感觉应该靠谱。
http://wenku.baidu.com/view/df796d3d87c24028905fc301.html
行了,软件网址有了,源代码也有了,我们下面说开始配置吧。
首先我在D盘下面新建了一个文件夹pclsvn,之后再文件夹里面建了两个文件夹,分别是:pcl和build。
我们在pcl中放入源代码,然后用Cmake进行编译,这里我用的是Cmake3.0,好像要用Cmake2.8以上的版本。
之后点击configure:
选中BUILD下的,点击configure,在BULID下面选中BULID_CUDA,BUILD_apps,BUILD_visualization,BULID_tools,BULID_gpu,gpu里面有KinFu,其他的为什么要选我就 不知道了,我是看其他的资料里面选了,我就选上了,反正也没什么坏处,就选上吧。
然后点击Generate,就生成了。
然后打开build文件夹下,找到pcl.sln,打开,编译,运行pcl_kinfu_app。
运行结果如图所示:
上面的内容和一般的资料或者博客上说的差不多,下面我说一下自己遇到的问题:
问题1:我在用Cmake编译的时候,总也没有找到pcl_kinfu_app这个项目。
解决办法,是因为没有CUDA这个软件,我又查了自己的显卡是GT620,支持CUDA,至于CUDA是什么可以上网查,是英伟达NVIDIA公司出的一个队GPU进行运算的平台。
note:要注意的是,看自己的显卡支持CUDA吗,还有就是PCL对应的支持CUDA版本是什么,我用的是pcl1.6对应的CUDA版本是version5.0.当然了,如果按照上面的步骤之后有pcl_kinfu_app这个项目,就不用了。
问题2:在我找到pcl_kinfu_app这个项目后,编译可以通过,运行的时候,运行窗口一闪而过。
在cmd下运行,出现:
Qt: Untested Windows version 6.2 detected!
[pcl::gpu::printShortCudaDeviceInfo] : Device 0: "GeForce GTX 650" 1024Mb, sm_
30, 384 cores, Driver/Runtime ver.5.0/5.0
Can't open depth source
Press any key to continue . . .
原因是:微软的Kinect驱动和PrimeSensor公司出的Kinect的驱动冲突了,因为是微软的驱动把PrimeSensor公司的驱动如果同时安装的话,微软的驱动会将其覆盖。所以在卸载Kinect的驱动后,应该在重装一下PrimeSensor驱动。