`
小斤陈
  • 浏览: 33513 次
社区版块
存档分类
最新评论

Kinect开发教程七:OpenNI2自带范例程序的编译执行

阅读更多

 

小斤觉得,研究自带的范例程序是学习的重要途径之一,在编译与配置OpenNI2的范例程序时,并没有安装时候那么顺利,在这里分享一下经验。

      安装版本OpenNI 2.1 beta,开发环境VS2008。


      依照上一篇教程六安装成功后,会有以下目录:
      范例程序主目录:
      OpenNI2\Samples\
      可执行文件:
      OpenNI2\Samples\Bin
      公共头文件:
      OpenNI2\Samples\Common
      GL库:
      OpenNI2\Samples\GL
      如果有VS2010应该能直接打开项目。

新建VS范例工程
      在较早的VS版本运行,可以参考以下步骤来新建一个范例工程:
      【1】新建C/C++工程
      【2】配置工程属性(参考教程六)
      【3】拷贝源代码,这里小斤拷贝了SimpleViewer的源码到工程目录。
      【4】拷贝公共头文件:\OpenNI2\Samples\Common\OniSampleUtilities.h到工程目录。
      如下图

 

GLUT库
      【1】对于OpenNI2\Samples\GL目录下的头文件目录gl与glh
      复制到以下文件夹:
       Visual Studio 6:X:\Program Files\Microsoft Visual Studio\VC98\Include\GL
       Visual Studio .net 2003:X:\Program Files\Microsoft Visual Studio NET 2003\Vc7\PlatformSDK\Include\gl
       Visual Studio 2005:X:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl
       Visual Studio 2008:X:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl

      【2】对于OpenNI2\Samples\GL目录下的*.lib复制到以下文件夹:
       Visual Studio 6:X:\Program Files\Microsoft Visual Studio\VC98\Lib
       Visual Studio .net 2003:X:\Program Files\Microsoft Visual Studio NET 2003\Vc7\PlatformSDK\Lib
       Visual Studio 2005:X:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib
       Visual Studio 2008:X:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib

      【3】OpenNI2\Samples\GL目录下的*.dll复制到工程目录或者C:\Windows\system中。

一些小坑
      【1】在小斤的工作环境VS2008中,遇到编译错误:
      error C2146: syntax error : missing ';' before identifier 'usbVendorId'
      error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
      error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
      error C2146: syntax error : missing ';' before identifier 'usbProductId'
      error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

      在OpenNI2\Include\Win32\OniPlatformWin32.h中发现

    //---------------------------------------------------------------------------  
    // Includes  
    //---------------------------------------------------------------------------  
    #include <windows.h>  
    #include <stdlib.h>  
    #include <stdio.h>  
    #include <malloc.h>  
    #include <io.h>  
    #include <time.h>  
    #include <assert.h>  
    #include <float.h>  
    #include <crtdbg.h>  
    #if _MSC_VER < 1600 // Visual Studio 2008 and older doesn't have stdint.h...  
    typedef __int64 int64_t;  
    typedef unsigned __int64 uint64_t;  
    #else  
    #include <stdint.h>  
    #endif  

       该错误由于uint32_t与uint8_t未定义造成,加入定义后编译成功。

    #if _MSC_VER < 1600 // Visual Studio 2008 and older doesn't have stdint.h...  
    typedef __int64 int64_t;  
    typedef unsigned __int64 uint64_t;  
    typedef unsigned __int32 uint32_t;  
    typedef unsigned __int16 uint16_t;  
    typedef unsigned __int8 uint8_t;  
    #else  
    #include <stdint.h>  
    #endif  

 
      【2】在上一篇教程中,小斤也说过,要拷贝\OpenNI2\Redist目录下的所有文件到VS的工作目录(如果不通过VS启动,则拷贝到程序执行目录)
      否则将会看到以下错误:
 

----------------------------------

作者:小斤(陈忻)

新浪围脖:@小斤陈

本文属于原创文章,如需转载引用请注明原文作者和链接,谢谢。

0
0
分享到:
评论
1 楼 Tophuhu 2013-02-16  
这个系列的图全挂了,请检查一下

相关推荐

    Unity结合Kinect2体感开发:KinectForWindows_UnityPro

    总之,"Unity结合Kinect2体感开发:KinectForWindows_UnityPro"项目提供了一个学习和实践体感技术的平台,通过Unity3D与Kinect 2的结合,可以创造出富有创意和互动性的应用程序。无论是游戏开发者还是希望探索新交互...

    OpenNI2 for Window

    5. **社区支持**:OpenNI2拥有活跃的开发者社区,提供了很多示例代码、教程和第三方模块,帮助开发者解决实际问题。 6. **安装简便**:从提供的"OpenNI-Windows-x64-2.2.msi"文件可以看出,这是一个Windows安装程序...

    OpenNI2-Kinect2Driver:OpenNI2 Kinect v2 DevPrev 驱动程序

    OpenNI2-Kinect2Driver OpenNI2 Kinect v2 驱动程序注意请您自己承担风险使用还在实验阶段。 它只是运行,但可能缺乏功能或可能有问题。 不与 NiTE 一起运行。 NiTE 需要我们无法实现的专有驱动程序参数。安装安装 ...

    openni2_kinect2_driver:支持 Kinect v2 传感器的 OpenNI2 驱动程序

    OpenNI 2 Kinect v2 驱动程序注意:这是驱动程序的陈旧版本。 请在以下位置找到最新版本: : 贡献者米格尔·安吉尔·维科接触Miguel Angel Vico ( )概括此 OpenNI 2 驱动程序增加了对 Microsoft Kinect v2 传感器的...

    基于Kinect的openNI开发包

    1. **openNI框架**:openNI提供了统一的API,使得开发者可以轻松地访问和处理来自Kinect的原始数据,如RGB图像、深度图和骨架信息。 2. **Kinect传感器**:Kinect能捕捉到3D空间中的深度信息,通过算法计算出人体的...

    openni kinect开发

    4. **编程接口**:OpenNI提供了C++和C#的API,方便开发者进行程序开发。同时,它也支持脚本语言如Python,使得非专业程序员也能快速上手。 5. **社区支持**:OpenNI拥有活跃的开发者社区,提供各种示例代码、教程和...

    Kinect+OpenNI学习笔记

    Kinect+OpenNI学习笔记,系统的介绍了,如何在OpenNi下使用Kinect,对于基于Kinect的开发,很有帮助,能够帮助入门者学会如何使用Kinect,对于以后使用其他平台开发,也是大有裨益的。

    Kinect+OpenNI学习笔记之5(使用OpenNI自带的类进行简单手势识别).pdf

    在继续深入学习之前,我们要明确几个关键概念和工具:OpenNI(Open Natural Interaction)是一个开源中间件,它能够帮助我们获取Kinect这类深度传感器的数据,并提供了手势识别的算法库。Kinect是微软推出的体感周边...

    openNI的kinect开发

    1. **openNI框架**:openNI是一个跨平台的开发库,它提供了与多种自然交互设备交互的接口,包括kinect。它能够获取并处理深度图、颜色图以及音频流。 2. **Kinect硬件**:理解kinect的工作原理,包括其红外投影系统...

    Kinect开发Openni,SimpleOpenni

    标题中的“Kinect开发OpenNI,SimpleOpenNI”是指使用OpenNI框架来开发与Microsoft Kinect相关的应用程序。OpenNI(Open Natural Interaction)是一个开源框架,它为开发者提供了与各种传感器交互的接口,包括微软的...

    ubuntu openni2

    在Ubuntu系统中,OpenNI2是一个用于与3D传感器(如Primesense的Kinect)交互的开源开发框架。它提供了编程接口,使得开发者能够轻松地创建应用来处理来自这些设备的数据,例如深度图像和彩色图像。OpenNI2支持多种...

    Kinect v2开发教程完整版C++

    本文是整理中的Kinect for Windows v2 的C++ 程式开发教程。内容包括但不限于: • Kinect for Windows SDK v2 基本介绍 • Kinect for Windows SDK v2 C++ API 简介 • K4W v2 C++ Part 1:简单的深度读取方法 • ...

    OPENNI2 Kinect.dll

    OPENNI2作为Kinect传感器应用开发的接口,被广泛集成至多种开源计算机视觉和图形处理库中。OPENNI2 Kinect.dll作为OPENNI2框架的一部分,专门针对Kinect设备的数据处理进行了优化。 OPENNI2 Kinect.dll的核心功能...

    Kinect运用OpenNI产生点云

    OpenNI是一个开源的开发平台,它为自然用户界面(NUI)提供了一种标准化的方式来访问各种设备,如Kinect,以获取深度图像和其他传感器数据。 在描述中提到的链接是一个CSDN博客文章,可能详细解释了如何通过OpenNI...

    OpenNI2-master

    6. **兼容性**:OpenNI2 兼容多种传感器,包括最初的PrimeSense Carmine和Xtion PRO Live,以及微软的Kinect v1和v2,这使得开发者有更多选择来适应不同的硬件环境。 7. **社区支持**:作为开源项目,OpenNI2 拥有...

    OpenNI插件

    文件名“OpenNI-master”表明这是一个包含OpenNI源代码的主分支版本,很可能包含了OpenNI的完整源代码、编译脚本、示例程序和开发文档。通过这个源代码,开发者不仅可以深入理解OpenNI的工作原理,还可以根据需要对...

    OPENNI2.2(64位的)

    1. **设备支持**:OpenNI2 支持多种3D传感器,如PrimeSense、Microsoft Kinect、Intel RealSense等,允许开发者无需关心底层硬件细节,即可访问深度图像、色彩图像和骨骼跟踪数据。 2. **上下文管理**:OpenNI2 ...

    openni的入门学习

    - **Windows/Linux下的OpenNISDK安装**:OpenNI提供适用于Windows和Linux操作系统的软件开发包(SDK),开发者需要根据自己的操作系统下载并安装适合的版本。安装过程中要注意设置相关的环境变量,以便在不同的开发...

    openni2_camera:使用 OpenNI2 访问 Kinect ASUS Xtion 和其他 OpenNI 相机并通过 ROS image_transport 发布流

    使用 OpenNI2 访问 Kinect ASUS Xtion 和其他 OpenNI 相机,并通过 ROS image_transport 发布 rgb 和深度流 这个包不能开箱即用,取决于成功安装 OpenNI2 从这里获取: : 如果要在 ARM 处理器上安装 OpenNI2,请...

    基于kinect和OpenNI的人体表面重建

    这篇仿生机器人课程报告主要探讨了如何利用Kinect相机和OpenNI库进行人体表面的3D重建。Kinect相机因其低成本、高可靠性和快速测量能力,已经成为3D传感领域的重要设备,尤其在人体姿态识别、室内机器人导航、3D场景...

Global site tag (gtag.js) - Google Analytics