Windows-8.1_x64+VS2012+Kinect V2环境配置

我的开发环境:Windows8.1 x64, VS2012。
  在配置环境之前,当然要先安装SDK,下载Kinect for Windows SDK 2.0http://www.microsoft.com/en-us/download/details.aspx?id=44561),其实在使用Kinect V2之前就要先把SDK安装好。注意在安装SDK时不要同时连接Kinect V2,不然可能会失败。PS:网上都这么说,我没这样试过,有兴趣的童靴可以试试 :P。
  安装完之后运行“SDK Browser(Kinect for Windows)”,Run “Kinect Configuration Verifier” 即可出现该电脑的验证结果(看该电脑是否可以正常使用Kinect V2),我的电脑有三个项存有疑问,这个只能真正连接Kinect才知道能不能用,后面事实证明没问题,可以正常使用。至于那个打红叉的项是因为我还没有连接Kinect。
  这里写图片描述 这里写图片描述
  接着就和OpenCV配置VC++环境差不多,但这个Kinect V2好像不需要配置系统环境变量,我没有配置系统环境变量也能正常使用。先新建工程,然后在“属性管理器”中右键“添加新项目属性表”(方便一次配置,多次使用,以后再使用只要在相应项目下右键“添加现有属性表”即可)。
  在安装Kinect for Windows SDK 2.0时,会自动在系统环境变量中添加

变量名变量值
KINECTSDK20_DIRC:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\

  其实Kinect for Windows SDK 2.0默认的安装目录就是C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\。
  
  接下来就是真正的环境配置了:
选中“VC++目录”
“可执行文件目录”中添加:

$(KINECTSDK20_DIR)\bin

C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\bin

“包含目录”中添加:

$(KINECTSDK20_DIR)\inc

C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\inc

“库目录”中添加:

$(KINECTSDK20_DIR)\Lib\x86

C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Lib\x86

选中“链接器”
“附加库目录”中添加:

$(KINECTSDK20_DIR)\Lib\x86

C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Lib\x86

“链接器” –> “输入”
“附加依赖项”中添加:

Kinect20.lib

最后附测试程序:

#include <Kinect.h> // 使用Kinect

#include <iostream>

void kinectTest()
{
    IKinectSensor *mySensor = nullptr;
    GetDefaultKinectSensor(&mySensor);  // 获取传感器

    mySensor->Open();   // 打开感应器

    // ---------------------获取深度数据--------------------------------------
    IDepthFrameSource *mySource = nullptr;
    mySensor->get_DepthFrameSource(&mySource);  // 获取深度数据

    int height = 0, width = 0;
    IFrameDescription *myDescription = nullptr;
    mySource->get_FrameDescription(&myDescription); // 获取深度数据的分辨率
    myDescription->get_Height(&height);
    myDescription->get_Width(&width);
    myDescription->Release();
    myDescription = nullptr;

    IDepthFrameReader *myReader = nullptr;
    mySource->OpenReader(&myReader);    // 打开深度数据的Reader

    int times = 100;
    IDepthFrame *myFrame = nullptr;
    cv::Mat temp(height, width, CV_16UC1);
    cv::Mat img(height, width, CV_8UC1);
    while (times)
    {
        if (myReader->AcquireLatestFrame(&myFrame) == S_OK) // 
        {
            UINT size = 0;
            UINT16 *buffer = nullptr;
            myFrame->AccessUnderlyingBuffer(&size, &buffer);
            std::cout << times << "\t"<< buffer[width*(height/2) + width/2] << std::endl;
            times--;
            myFrame->Release();

        /*  myFrame->CopyFrameDataToArray(height*width, (UINT16 *)temp.data);
            temp.convertTo(img, CV_8UC1, 255.0 / 4500);
            imshow("Depth Map", img);
            myFrame->Release();
            myFrame = nullptr;*/
        }

        if (cv::waitKey(30) == VK_ESCAPE)
        {
            break;
        }

    }
    myReader->Release();
    myReader = nullptr;
    mySource->Release();
    mySource = nullptr;
    mySensor->Close();
    mySensor->Release();
    mySensor = nullptr;
}

运行之后,若配置成功则会在控制台界面输出深度图中心点的深度信息,如下图:
这里写图片描述

参考资料

[1] Kinect for Windows V2 SDK+ VS2012 环境搭建http://blog.csdn.net/glb562000520?viewmode=contents
[2] Kinect For Windows V2开发日志一:开发环境的配置http://www.cnblogs.com/xz816111/category/786456.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值