Kinect v2.0原理介绍之二:6种数据源

版权声明:本文为博主原创文章,未经博主允许不得转载。有问题可以加微信:lp9628(注明CSDN)。 https://blog.csdn.net/u014365862/article/details/46849253

~~有兴趣的小伙伴,加kinect算法交流群:462964980。

Kinect Data Sources – 6种数据源

(1)ColorFrameSource
这里写图片描述这里写图片描述

(2)InfraredFrameSource

这里写图片描述这里写图片描述

(3)DepthFrameSource
这里写图片描述这里写图片描述

(4)BodyIndexFrameSource
这里写图片描述 这里写图片描述

(5)BodyFrameSource
这里写图片描述这里写图片描述

(6)AudioSource

获取这六种数据源的目的是为了得到最终需要的数据,Kinect v2中获取并处理数据源接口步骤如下:

Sensor -> Source -> Reader -> Frame -> Data

以C++读取彩色图像为例:

第一步:打开Kinect传感器:

hr = GetDefaultKinectSensor(&m_pKinectSensor);

hr = m_pKinectSensor->Open();

第二步:显示数据源的源数据并为阅读器(readers)提供途径、为传感器每个数据提供一种数据源。

hr = m_pKinectSensor->get_ColorFrameSource(&pColorFrameSource);

第三步:提供获取帧的途径(事件机制、轮询机制)。

hr = pColorFrameSource->OpenReader(&m_pColorFrameReader);

第四步:发送帧事件参数。

获取最近一帧的数据。

hr = m_pColorFrameReader->AcquireLatestFrame(&pColorFrame);得到这每一帧的数据,就可以不用kinect提供的sdk,做点对图像想做的事情。

获取最近一帧ID为iFace的人脸数据。

hr = m_pFaceFrameReaders[iFace]->AcquireLatestFrame(&pFaceFrame);

第五步:提供获取数据的途径、包含了帧中的元数据(彩色帧、帧格式、宽度、高度等)、更重要的是,它可以减少获取帧的时间(不会提供不需要的处理帧)

例如:

1、获取ID为iFace的脸部帧:

hr = pFaceFrame->get_FaceFrameResult(&pFaceFrameResult);

然后通过pFaceFrameResult能够获取更多的脸部信息。

2、获取每帧的描述,进而得到,帧的高度、宽度等信息。

hr = pColorFrame->get_FrameDescription(&pFrameDescription);

hr = pFrameDescription->get_Width(&nWidth);

hr = pFrameDescription->get_Height(&nHeight);

猜你喜欢

转载自blog.csdn.net/u014365862/article/details/46849253