程序员人生 网站导航

Kinect2的安装以及关于OpenNI2遇到的问题(OpenNI2显示no devices found)

栏目:综合技术时间:2016-10-05 09:16:43

作为1个研究生狗,最近应老板的要求在学习关于Kinect方面的知识。


其中遇到1个问题就是:学校购入的Kinect是Kinect 2代,而且我所学习的框架必须依赖OpenNI库,但是Kinect2和OpenNI2在查阅各种资料下,似乎是不兼容的。如图:



为了解决这个问题,花费了我好久的时间。不过还好,终究在某外网的问答下找到了答案。



首先,我先报下我的环境:

操作系统:win8.1(Kinect 2需要搭配 kinect for windows SDK 2.0,而SDK2.0需要win8及其以上系统。)

装备:Kinect Xbox One

软件:Kinect for windows SDK 2.0  

          OpenNI 2.2


Kinect 2的安装:

(虽然我的系统是64位,可我觉得32位更方便,以下所有软件我都是使用的32位版本。)

1、下载并安装Kinect for windows 2.0(记住,此时Kinect不能连接电脑)。由于是微软的比较霸道,不能更改安装路径。如果有想知道路径的朋友,其路径是C:\Program Files\Microsoft SDKs\Kinect

网上有很多关于Kinect的安装教程,相信很多同学都看见过SDK1.x+OpenNI+NITE的安装教程。那是在SDK 2.0之前,如果在windows系统上开发Kinect需要借助OpenNI和NITE。SDK2.0发布后,其实1般简单的程序都有包括。目前Kinect 2代大致有两种选择:1、使用SDK;2、使用SDK+OpenNI2。二者有各自的好,1个是开源,1个比较便利。这就需要自己去选择啦。


2、连接Kinect(记住1定要用usb3.0接口)。以后电脑会自动安装Kinect所需的驱动。


此时打开Kinect studio,点击connected

可以测试电脑是不是可以连接Kinect



如果你是只安装SDK,到此就安装成功了,SDK中有很多例子(点击SDK Browser),可以多看看,使用也很方便。



        

3、下载并安装OpenNI2。这里就不详细讲授了,设置好安装路径再1路next就能够了。

安装完,点击NiViewer测试是不是成功。


成功!





OpenNI2遇到no devices found问题:


如开篇所说,查阅了很多资料都是Kinect 2 与 OpenNI2 不兼容,所以OpenNI辨认不了Kinect 2装备。不过,误打误撞的我找到了解决方法:


1、下载OpenNI2-Kinect2Driver。点击Download ZIP,下载到1个你想要的路径,并解压。




2、用vs2013运行OpenNI.sln。(关于vs的选择,它虽然是vs2010编译的,但是要求vs2012及其以上运行。我用vs2012运行会报错并且需要改平台工具集,所以试过以后我建议大家用vs2013。)



3、打开以后,大家会发现它默许的活动解决方案平台是x64,其实不是win32,鉴于上面我们都是用的32位的软件,所以改成win32(x86)。如果你需要的是64位不需要改平台,以下也会顺带讲授。

然后点击生成OpenNI,成功。


右击Kinect2,点击属性->配置属性->vc++目录:

配置包括目录:C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\inc

配置库目录:C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Lib\x86(32位)

                    C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Lib\x64(64位)

再点击链接器->输入

配置附加依赖项:Kinect20.lib和XnLib.lib

配置好属性后,点击生成Kinect2


如果你的活动解决方案平台是win32:

在:你选择解压的路径\OpenNI2-kinect2\Bin\Win32-Debug\OpenNI2\Drivers中可以找到Kinect2.dll,Kinect.lib等

如果你的活动解决方案平台是x64:

在:你选择解压的路径\OpenNI2-kinect2\Bin\x64-Debug\OpenNI2\Drivers中可以找到Kinect2.dll,Kinect.lib等


将得到的文件复制到:

OpenNI2安装目录\OpenNI2\Tools\OpenNI2\Drivers下


运行NiViewer,成功~!



注:1.选择你32位OpenNI2要对应选择win32平台,64位的OpenNI2要选择对应的x64平台。

       2.使用OpenNI时,记得要把OpenNI2\Redist中的所有内容复制到项目中。


困扰我很久的问题~通过自己的努力解决了~希望大家多多支持~科科~



------分隔线----------------------------
------分隔线----------------------------

最新技术推荐