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设备连接时: