xbox360上的kinect是第一代的,因此只能使用openni1.*,而不能使用openni2.*
同时openni1.*的一些库在vs2010以后的版本上编译无法通过,因此只能使用vs2010+openni1.*
另外不同版本的openni1.*要配合不同的primesenser使用,否则编译会出错,还需要安装NITE。
后来选择了pcl官网上的all-in-one版本,但是,不知为何安装过程中,每次该openni1.3.2.1时,便出错显示openni安装失败。最后安装了一个高版本的openni1.5*,再卸载掉,然后重新安装pcl-all-in-one,问题终于解决了。
但是突然发现pcl官网中的all-in-one版本并没有将我需要的kinfu编译进去。。。。还是得自己编译。。。
还好后来在这里发现只需要修改下openni1.*中的头文件XnPlatform.h中的第56行为:
#if _MSC_VER > 1900 // After MSVC8 (2010) Zane changed 1600 to 1900 After MSVC8 (2013)
这样就可以在vs2013上顺利编译啦,不过会不会有BUG那就不知道了。。。
具体编译流程详见VS编译PCL1.8.0
但是由于我在编译Boost时总是少了几个库,导致一些地方报错。
另外xbox360是用的第一代的kinect, 我曾经试过用primesense1.5* ,结果不能用 最后换成了1.3版本的,应该是版本太高不支持第一代的啦