kinect for windows sdk 安装与配置

        原文来自<小华编程网>:kinect for windows sdk 安装与配置

        我的设备:kinectV1

一.准备文件

        kinect for windows sdk v1.8(这是kinectV1支持的最新sdk)

        Kinect for Windows Developer Toolkit v1.8 (这是sdk的一个工具箱,里面有很多丰富的例子。可以不安装,推荐安装)

二.安装

        拔掉kinect,安装kinect  for windows sdk,再安装 Kinect for Windows Developer Toolkit v1.8

三.检测驱动

        插上kinect,跑Developer Toolkit里面的任意例子,正常说明kinect设备能驱动了,反之没有。如果没有安装Kinect for Windows Developer Toolkit v1.8就跳过这一步。

四.配置vs(我的环境:vs2013,C++开发)

       用vs新建一个win32控制台应用程序,附加选项选空项目,添加一个cpp文件到项目。

       vs中打开:视图-其他窗口-属性管理器,打开属性管理器->项目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories的属性,添加下列文件(根据自己安装SDK的目录的情况添加)

       1.  在包含目录中添加:C:\Program Files\Microsoft SDKs\Kinect\v1.8\inc

       2 . 在vc++库目录中添加:C:\Program Files\Microsoft SDKs\Kinect\v1.8\lib\x86

       3 . 在链接器->输入中添加:Kinect10.lib

       跑下面的代码,实时显示彩色数据,运行正常说明配置正确,反之配置有问题

       注: 我这里用了opencv(一个图像识别库),opencv是开发kinect基础程序必备的库,安装opencv参考这里 : http://blog.csdn.net/poem_qianmo/article/details/19809337/

#include<Windows.h>
#include<NuiApi.h>
#include <opencv2/opencv.hpp> 
#include"iostream"
using namespace std;
using namespace cv;


int main()
{

	//初始化NUI
	HRESULT hr = NuiInitialize(NUI_INITIALIZE_FLAG_USES_COLOR);
	if (FAILED(hr))
	{
		cout << "error!Cannot initialize the kinect!" << endl;
		return -1;
	}

	//定义事件
	//创建读取下一帧的信号事件句柄,控制kinect是否可以读取下一帧的数据
	HANDLE nextColorEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
	//保存图像数据流的句柄,用于提取数据
	HANDLE colorStreamHand = NULL;

	hr = NuiImageStreamOpen(NUI_IMAGE_TYPE_COLOR, NUI_IMAGE_RESOLUTION_1280x960, 0, 2, nextColorEvent, &colorStreamHand);
	if (FAILED(hr))
	{
		cout << "Cannot open the image stream" << endl;
		NuiShutdown();
		return -2;
	}

	Mat image;
	image.create(960, 1280, CV_8UC3);
	namedWindow("colorImage", CV_WINDOW_AUTOSIZE);

	while (1)
	{
		const NUI_IMAGE_FRAME * pImageFrame = NULL;

		//无限等待数据,等到后返回
		if (WaitForSingleObject(nextColorEvent, INFINITE) == 0)
		{
			//读取数据
			hr = NuiImageStreamGetNextFrame(colorStreamHand, 0, &pImageFrame);
			if (FAILED(hr))
			{
				cout << "cannot get color image" << endl;
				NuiShutdown();
				return -1;
			}

			INuiFrameTexture * pTexture = pImageFrame->pFrameTexture;
			NUI_LOCKED_RECT LockedRect;

			//锁定数据
			pTexture->LockRect(0, &LockedRect, NULL, 0);

			//判断数据是否有效
			if (LockedRect.Pitch != 0)
			{
				//将数据转换为OpenCV的Mat格式  
				for (int i = 0; i<image.rows; i++)
				{
					uchar *ptr = image.ptr<uchar>(i);  //第i行的指针  

					//每个字节代表一个颜色信息,直接使用uchar  
					uchar *pBuffer = (uchar*)(LockedRect.pBits) + i * LockedRect.Pitch;
					for (int j = 0; j<image.cols; j++)
					{
						ptr[3 * j] = pBuffer[4 * j];  //内部数据是4个字节,0-1-2是BGR,第4个现在未使用   
						ptr[3 * j + 1] = pBuffer[4 * j + 1];
						ptr[3 * j + 2] = pBuffer[4 * j + 2];
					}
				}
				imshow("colorImage", image); //显示图像   
			}
			else
			{
				cout << "Buffer length of received texture is bogus\r\n" << endl;
			}

			//解锁
			pTexture->UnlockRect(0);
			//释放本帧,等待下一帧
			NuiImageStreamReleaseFrame(colorStreamHand, pImageFrame);
		}

		if (cvWaitKey(20) == 27)
			break;
	}

	NuiShutdown();
	return 1;

}
        如果程序能正常显示,说明安装和配置都正常的
 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Kinect for Windows SDK 2.是微软推出的一款软件开发工具包,用于开发基于Kinect传感器的应用程序。它提供了丰富的API和工具,可以帮助开发者快速构建出具有深度感知、语音识别、姿态跟踪等功能的应用程序。同时,它还支持多种编程语言和开发环境,包括C++、C#、Visual Studio等,方便开发者进行开发和调试。 ### 回答2: Kinect for Windows SDK 2.0是微软公司推出的一款面向Windows平台的Kinect开发工具包。该工具包提供了一系列的工具和API,使开发者能够轻松地利用Kinect设备在Windows应用程序中实现身体姿态跟踪、语音识别、深度感应等功能。下面就详细介绍一下Kinect for Windows SDK 2.0的内容和特点。 首先,Kinect for Windows SDK 2.0支持多种操作系统,包括Windows 7、Windows 8、Windows 8.1和Windows 10,支持32位和64位的应用程序运行。它还支持多种开发语言,包括C++、C#和Visual Basic等,若使用这些语言编写代码也可以充分发挥Kinect设备的功能,帮助开发者实现其想要的效果。 其次,Kinect for Windows SDK 2.0提供了一些著名的工具和API。比如,它提供了基于深度感应器的底层API,可以实现目标检测、骨骼跟踪、手势识别等功能。这些底层API是非常有用的,因为开发者可以根据需要进行自定义设置,更好地进行应用程序开发。 此外,Kinect for Windows SDK 2.0还提供了许多高级功能,包括声学模型、语音指定、身体处于位置追踪等,这些功能是很有用的,因为它们可以让开发者的应用程序变得更加智能、全面。例如,开发者可使用该设备的语音识别功能来触发应用程序中的事件,还可以使用身体处于位置追踪功能来实现用户体验的增强,使游戏、培训等应用程序变得更加吸引人。 最后,Kinect for Windows SDK 2.0优秀的交互能力也是其非常突出的特点。它的 API 可以让开发者在应用程序中实现更加真实、独特的交互体验和增强现实效果。同时,在使用过程中,Kinect设备还可以轻松地与现有的应用程序进行整合。 总而言之,Kinect for Windows SDK 2.0是一款功能非常强大、易于使用的开发工具包,非常适合开发者用于创建基于Kinect设备的应用程序,帮助开发者实现更加智能、全面的应用程序,让 Kinect 生态系统更加繁荣。 ### 回答3: Kinect for Windows SDK2.0是微软公司发布的一款软件开发工具包,旨在帮助开发者利用Kinect传感器开发Windows应用程序。该工具包支持C++、C#、VB和JavaScript等多种编程语言,拥有丰富的API和示例代码,可以实现人体骨骼追踪、手势识别、声音识别、运动捕捉等多种功能。 首先,该工具包提供了一整套API,包含了Kinect的各种功能,如颜色和深度图像获取、骨骼跟踪、音频采集、麦克风阵列控制等。这些API可以让开发者轻松地构建运用Kinect的应用程序,提高开发效率。 其次,该工具包提供了许多示例代码和教程,可供开发者学习借鉴。这些示例代码覆盖了Kinect的各个功能,可以帮助开发者深入了解Kinect的工作原理和应用场景,从而更好地利用其开发应用程序。 此外,由于Kinect for Windows SDK2.0是一款Windows平台的软件开发工具包,所以它与Windows操作系统的兼容性较好,在开发时不需要考虑不同平台之间的兼容性问题,可以更加专注于应用程序本身的开发。 总之,Kinect for Windows SDK2.0是一款功能强大、易于使用的软件开发工具包,旨在帮助开发者充分发挥Kinect的功能和优势,构建出更具创意性和实用性的应用程序,具有广泛的应用前景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值