Kinect 2 SDK + OpenCV 获取深度彩色图像

      感谢有钱的研究组,可以毫不眨眼买了3台Kinect2,其中一台还是备用的!真是有钱啊。

      导师拿到之后就发邮件说,哎,东西到啦咱们试试呗。妈蛋的他们都用Mac和Linux,但是Kinect2的SDK只能用在Win8上,据说之前只能用在Win 8.1上,最近才兼容到了Win8(2014年7月14日). 于是这个任务就落在我身上了,因为只有我的个人电脑上用Win8,而且如果必须要用Win8.1他们还必须经过IT部门去买,但是我却可以直接弄到Win8.1,怎么弄到你懂的。于是导师对我嘿嘿一笑:“我就把Kinect放你这里了啊,你看着弄吧。”

       查了查也没有在网上找到相应的例子,看到一个外国红色社会主义友人写的博客介绍 http://www.kinectingforwindows.com/2014/03/03/gen-ii-kinect-basics-overview/  很系统很全面啊,但是我只想拿到depth和color图像,其它不关心啊,于是自己弄吧。

       首先,下载最新的Kinect 2 SDK  http://www.microsoft.com/en-us/kinectforwindows/develop/downloads-docs.aspx

       下载之后不要插入Kinect,最好也不用插入除了键盘鼠标以外的其它USB设备,然后安装SDK,安装完成之后插入Kinect,会有安装新设备的提示。安装完成之后可以去“开始”那里找到两个新安装的软件,一个是可以显示Kinect深度图,另外一个软件展示SDK中的各种例子程序。

        进入SDK的安装目录,可以找到sample这个文件夹,里面是四种语言编写的例子,其中native是C++的,managed是C#的,还有另外两种语言不熟悉,我就熟悉C++,反正只是试试的,就用C++了。

        这里只是获取深度和彩色图像,所以只用到 BasicDepthh 和 BasicColor 两个例子,因为要结合OpenCV显示保存图像,所以我就把例子中的代码抽离出来了。各位请看我生拉硬刨出来的代码:

#include "config.h"
#include "stdafx.h"
//#include "DepthBasics.h"

// 转换depth图像到cv::Mat
cv::Mat ConvertMat(const UINT16* pBuffer, int nWidth, int nHeight, USHORT nMinDepth, USHORT nMaxDepth)
{
	cv::Mat img(nHeight, nWidth, CV_8UC3);
	uchar* p_mat = img.data;

	const UINT16* pBufferEnd 
  • 8
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 26
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值