• 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;
    }
  • 相关阅读:
    Django 使用 内置 content-type
    Python中类的约束
    《激荡十年》六、改革开放的上半场落幕—2012
    《激荡十年》五、中国经济又要完?—2011
    《激荡十年》四、历史性超越下的恐惧与焦虑—2010
    《激荡十年》三、全球哀鸿遍野,中国风景独好—2009
    《激荡十年》二、浩劫不断的2008
    《激荡十年》一、波澜壮阔又混沌失控的十年
    《腾讯传》六、“红衣大炮”轰杀“狗日的腾讯”—3Q大战
    《腾讯传》五、荡清环宇,横扫外来者; 千夫所指,腾讯“三宗罪”
  • 原文地址:https://www.cnblogs.com/scl1314/p/3947355.html
Copyright © 2020-2023  润新知