PCL——获取Kinect设备

获取Kinect设备代码如下:

#include<iostream>
#include "kinect.h"
int main()
{
	printf("Hello, Wellcome to kinect world!\n");
	IKinectSensor* bb; //申请一个Sensor指针 名称为bb
	HRESULT hr = GetDefaultKinectSensor(&bb); // 获取一个默认的Sensor
	if (FAILED(hr))
	{
		printf("No Kinect connect to your pc!\n");
		goto endstop;
	}
	BOOLEAN bIsOpen = 0;
	bb->get_IsOpen(&bIsOpen); // 查看下是否已经打开
	printf("bIsOpen: %d\n", bIsOpen);
	if (!bIsOpen) // 没打开,则尝试打开
	{
		hr = bb->Open();
		if (FAILED(hr))
		{
			printf("Kinect Open Failed!\n");
			goto endstop;
		}
		printf("Kinect opened! But it need sometime to work!\n");
		// 这里一定要多等会,否则下面的判断都是错误的
		printf("Wait For 3000 ms...\n");
		Sleep(3000);
	}
	bIsOpen = 0;
	bb->get_IsOpen(&bIsOpen); // 是否已经打开
	printf("bIsOpen: %d\n", bIsOpen);

	BOOLEAN bAvaliable = 0;
	bb->get_IsAvailable(&bAvaliable); // 是否可用
	printf("bAvaliable: %d\n", bAvaliable);

	DWORD dwCapability = 0;
	bb->get_KinectCapabilities(&dwCapability); // 获取容量
	printf("dwCapability: %d\n", dwCapability);

	TCHAR bbuid[256] = { 0 };
	bb->get_UniqueKinectId(256, bbuid); // 获取唯一ID
	printf("UID: %s\n", bbuid);
	bb->Close();
endstop:
	system("pause");
	return 0;
}

其中的get_IsOpen get_IsAvaliable get_KinectCapabilities get_UniqueKinectId 均为Kinect库中自带函数

无Kinect设备连接时:

有Kinect设备连接时:

猜你喜欢

转载自blog.csdn.net/qinlele1994/article/details/84065124
pcl
今日推荐