天天看点

Kinect OpenNI2 win7 x64 vs2010

要做实现提取人体骨架的提取。需要用到OpenNI库。首先进行环境的配置。

背景:在这直接用的KinectSDK驱动,没有用以前的驱动,关于以前(KinectSDK没出来之前)很多配置有兴趣的可以参看小斤的博客中的教程1.但是我没有亲自尝试,不知道他说的对不对。

Kinect OpenNI2  win7 x64 vs2010  openCV 环境配置 步骤:

1、安装vs2010,我在2008下试了使用Kinect,不好使,不知道什么原因,我查的很多资料都说在vs2010下,及其其他版本。以防出错,用的就是vs2010,没有用其他版本。

2、安装Kinect驱动,在Kinect不要插的情况下安装。主要是安装一个驱动,KinectSDK-v1.8-Setup.exe。安装成功以后,在设备管理器下,会看到一些变化。

3、安装KinectDeveloperToolkit-v1.8.0-Setup.exe,这个kinect的一个工具包。在里面集成了很多写好的C++、C和Python语言写的程序,装上它可以看到Kinect的一些效果。

4、安装openNI2,这个比较麻烦,安装成功以后,在安装目录下有一个Sample文件夹,里面有测试源文件,在Sample文件夹下的一个bin文件夹下,有.exe可执行文件,这些文件在没有配好vs2010的环境的情况下也可以运行。

但是要想运行源文件在vs2010下面,就要进行vs的环境配置了,步骤如下:

接下来的问题就是配置openNI2了再vs2010下面:

1、配置openCV:由于代码中用到了openCV的一些函数,所以先配openCV的环境,这个就不用多说了。网上有很多,为了防止大家找的困难,或者找到后不知道配的对不对的疑惑,我这提供一个链接http://blog.csdn.net/kingskyleader/article/details/7773330

2、配置openNI2:(来自小斤博客,根据我自己遇到的问题,有些改动。)

VS开发环境

            VS开发环境的配置与OpenNI1.X类似,还是配置include与library。

            小斤安装的是64位OpenNI2,安装目录位C:\OpenNI2\,在OpenNI2安装完毕后,安装程序自动添加了以下环境变量:(注意,安装32位的话,变量名无后缀,配置也相应需要变化)

            OPENNI2_INCLUDE64= C:\OpenNI2\Include\

            OPENNI2_LIB64= C:\OpenNI2\Lib\

            OPENNI2_REDIST64= C:\OpenNI2\Redist\

            新建VS  C++项目后,右击进入项目属性,进行以下配置:

        【1】Configuration  Properties,C/C++,Gerenal,在Additiaonal  Include  Directories项中添加$(OPENNI2_INCLUDE64)。

        【2】Configuration  Properties,Linker,Gerenal,在Additiaonal  Library  Directories项中添加$(OPENNI2_LIB64)。

        【3】Configuration  Properties,Linker,Input,在Additiaonal  Deencies项pend中添加$(OPENNI2_LIB64)。

问题1:在配置完成以后,可能会出现找不到openNI.h的问题。重启一些VS2010,或者电脑这个问题就解决了。 问题2:出现找不到.obj文件,是在配置的时候重复包含了Configuration  Properties,Linker,Input,在Additiaonal  Deencies项pend中添加$(OPENNI2_LIB64)。               最后需要注意的是,大家还需要拷贝\OpenNI2\Redist目录下的所有文件到VS的工作目录(如果不通过VS启动,则拷贝到程序执行目录)才可以正确运行,其中包含了OpenNI2启动所需的动态链接库等内容,详见以下解释(Copied  From  OpenNI  Document):

          Copy  all  the  files  from  OpenNI's  redist  directory  (see  environment  variable  "$(OPENNI2_REDIST)"  or  "$(OPENNI2_REDIST64)")  to  your  working  directory.  (The  defaults  are  C:\Program  Files\OpenNI2\Redist  or  C:\Program  Files  (x86)\OpenNI2\Redist).  Be  aware  that  when  you  run  from  command  line,  the  working  directory  is  the  directory  where  the  executable  can  be  found,  and  where  you  run  from  Visual  Studio  the  default  directory  is  where  the  project  file  (.vcproj,  .vcxproj)  can  be  found.

我按照以上配置之后,还是有问题,说缺少.dll文件,这个文件有32位的,有64位的,根据自己的情况可以进行选择,我在Sample中的文件中拷入我的工程里面的,我的是64位的。   如果你安装的是64位的,有一个关键的问题是:要在vs2010下的Debug下面将win32改成x64。这个问题我用了半天的时间才解决。

以下是小斤的博客地址,我有不明白的参考下:

http://blog.csdn.net/chenxin_130/article/details/8580636       总结:配置这个过程中,我觉得开始配置错误的主要原因是没有查清资料,刚开始一看Kinect的安装教程。就开始配,结果配了以后,总是出问题,又去查资料,结果才知道还有32位,和64位之分。还有安装顺序的问题。总之各种问题。以后配置之前一定要把资料查清楚,把配置流程理清楚以后再开始配置。这样出问题以后也知道问题出在哪。   如果要提取骨架,还要用到Nite2这个库里面的一些函数。这就需要配置Nite2,(原来的(不是用KinectSDK)不需要Nite2,就可以提取骨架),配置步骤如下: 1. 将 NiTE2.dll文件加入到 window下的system32 中;

2. 首先安装NiTE2,新建工程时将 C:\Program Files\PrimeSense\NiTE2\Lib 和C:\Program Files\PrimeSense\NiTE2\Include 加入到配置中;

3. 将 C:\Program Files\PrimeSense\NiTE2\Redist 下的文件拷到 OpenNI2下的Redist 文件中 4、将环境变量中的NITE2_INCLUDE64、NITE2_LIB64加入到vs2010中,具体怎么加入,可以参考nite库给的测试文件,用vs2010打开,可以看到在哪里配置了,安装它配置的看看缺什么补什么。如果是32位的,把后面的64去掉(可以看环境变量里面)。 在链接器--》输入--》加入nite2.lib文件 我在包含文件里面把redist文件包含进来了也,但是还不知道有什么作用。就是把nite2下的redist文件夹里面的文件拷贝到openNI2下的redist下,之后把openNI下的包含进来。 还有就是我把nite2下的redist里面的文件也拷贝到了工程目录下面,目前不知道这一步是不是必须的,还没有试。   配置这个和配置openNI差不多,毕竟都是库。只要能和vs建立联系,建立的合情合理,能让vs找到库里面的文件。