*逍遥*

代码改变世界!!!

win8 vs2010 openni2 配置

 

 

 

打开一个新项目或者已存在的项目用以使用  OpenNI

在Visual Studio 菜单中, 打开项目菜单,选择项目属性.

在C/C++ 选项卡中, 在"常规" 下, 选择 "附加包含目录" ,添加 "$(OPENNI2_INCLUDE)" (32位操作系统)或者添加("$(OPENNI2_INCLUDE64)" (64位操作系统). 环境变量指向本地OpenNI下的 Include文件夹. (默认为C:\Program Files\OpenNI2\Include或者C:\ProgramFilesx86)\OpenNI2\Include)

 在连接器选项卡中,  在"常规" 下, 选择"附加库目录",添加"$(OPENNI2_LIB)" (32位操作系统) 或者添加"$(OPENNI2_LIB64)"64位操作系统). 

环境变量指向本地OpenNI下的Lib文件夹. (默认为C:\ProgramFiles\OpenNI2\Lib 或者 C:\ProgramFiles(x86)\OpenNI2\Lib)在连接器选项卡中,在“输入”下, 选择"附加依赖项" 添加 OpenNI2.lib               

确保你所附加的 Include 和 Library 目录添加到你的 Release 和 Debug配置中.

从 OpenNI's redist 目录中复制所有文件(见换将变量"$(OPENNI2_REDIST)" or"$(OPENNI2_REDIST64)") 到你的工作目录. (默认为 C:\ProgramFiles\OpenNI2\Redist   or    C:\ProgramFiles(x86)\OpenNI2\Redist).请注意,当你在命令行运行时,工作目录就是可执行文件能够发现的目录,  你从Visual Studio的默认目录运行的地方就是项目文件 (.vcproj,.vcxproj) 能够被发现的地方。

要点提示:
1.openni2的版本与vs2010的版本必须保持一致,都是32位或都是64位
2.redist目录必须想清楚如何填写。。。

 

 

#include <iostream>
#include "OpenNI.h"
int main( int argc, char** argv )
{
    // 初始化OpenNI环境
    openni::OpenNI::initialize();

    // 声明并打开Device设备,我用的是Kinect。
    openni::Device devAnyDevice;
    devAnyDevice.open( openni::ANY_DEVICE );

    // 创建并打开深度数据流
    openni::VideoStream streamDepth;
    streamDepth.create( devAnyDevice, openni::SENSOR_DEPTH );
    streamDepth.start();

    // 同样的创建并打开彩色图像数据流
    openni::VideoStream streamColor;
    streamColor.create( devAnyDevice, openni::SENSOR_COLOR );
    streamColor.start();

    // 循环读取数据流信息并保存在VideoFrameRef中
    openni::VideoFrameRef frameDepth;
    openni::VideoFrameRef frameColor;
    for( int i = 0; i < 1000; ++ i )
    {
        // 读取数据流
        streamDepth.readFrame( &frameDepth );
        streamColor.readFrame( &frameColor );

        // 获取data array
        const openni::DepthPixel* pDepth
            = (const openni::DepthPixel*)frameDepth.getData();
        const openni::RGB888Pixel* pColor
            = (const openni::RGB888Pixel*)frameColor.getData();

        // 显示深度信息和对应的彩色R、G、B数值
        int idx = frameDepth.getWidth() * ( frameDepth.getHeight() + 1 ) / 2;
        std::cout  << pDepth[idx]  << "( "
            << (int)pColor[idx].r << ","
            << (int)pColor[idx].g << ","
            << (int)pColor[idx].b << ")"
            << std::endl;
    }

    // 关闭数据流
    streamDepth.destroy();
    streamColor.destroy();

    // 关闭设备
    devAnyDevice.close();

    // 最后关闭OpenNI
    openni::OpenNI::shutdown();

    return 0;
}

posted on 2014-08-31 09:44  *逍遥*  阅读(709)  评论(0编辑  收藏  举报

导航