这篇文章我们将总结一下,之前两篇文章中提到的Kinect SDK的函数接。
函数接口:
NuiGetSensorCount: 获取连接的Kinect设备个数
原型:_Check_return_ HRESULT NUIAPI NuiGetSensorCount( _In_ int * pCount );
解释:KinectSDK支持多个Kinect设备连接,这个函数能获取到Kinect设备个数。
返回值:返回S_OK是成功,其他失败,其中E_POINTER表示pCount是空指针错误。
NuiCreateSensorByIndex:通过索引创建INuiSensor对象
原型:_Check_return_ HRESULT NUIAPI NuiCreateSensorByIndex( _In_ int index, _Out_ INuiSensor ** ppNuiSensor );
解释:通过指定的下标,获取对应的KinectSensor对象
返回值:返回S_OK是成功,其他失败,错误码有:E_INVALIDARG(index是负数),E_NUI_BADINDEX(index超出范围),E_POINTER(ppNuiSensor是空指针)
NuiStatus:获取Kinect设备状态,它是INuiSensor的成员函数
原型:virtual HRESULT STDMETHODCALLTYPE NuiStatus( void) = 0;
解释:当获取到INuiSensor对象时,应该调用这个函数查看Kinect设备状态,如果状态不对,也是不能使用的。
返回值:返回S_OK是正常,其他失败,错误码如下:
S_NUI_INITIALIZING | The device is connected, but still initializing.设备初始化中 |
E_NUI_NOTCONNECTED | The device is not connected.设备未连接 |
E_NUI_NOTGENUINE | The device is not a valid Kinect.不是一个正常的Kinect |
E_NUI_NOTSUPPORTED | The device is an unsupported model.模式不支持 |
E_NUI_INSUFFICIENTBANDWIDTH | The device is connected to a hub without the necessary bandwidth requirements.插到usb hub中产生的问题 |
E_NUI_NOTPOWERED | The device is connected, but unpowered.没插电 |
E_NUI_NOTREADY | There was some other unspecified error.未知错误 |
NuiInitialize:初始化Kinect设备
原型:virtual HRESULT STDMETHODCALLTYPE NuiInitialize(
/* [in] */ DWORD dwFlags) = 0;
参数:指定初始化模式
Constant | Description |
---|---|
NUI_INITIALIZE_DEFAULT_HARDWARE_THREAD | This flag was deprecated in version 1.5; it is no longer used. | </