PXCSenseManager是访问相机数据及其它相关算法模块的主要接口。如果我们要访问深度数据,手势或面部识别功能,都必须创建PXCSenseManager的示例。
创建完实例后则可以激活流事件:
例如:PXCSenseManager *psm = PXCSenseManager::CreateInstance();
(二)psm->EnableStream(PXCCapture::STREAM_TYPE_DEPTH);
方法:STREAM_TYPE_DEPTH//深度视频流 ; 方法:STREAM_TYPE_COLOR //the color stream ; 方法:STREAM_TYPE_IR //红外视频流
EnableStream方法允许开发人员请求管道流中的某一指定流,在程序中可以调用多次以申请不同的流。
(三)通过调用psm->Init() 将初始化流管道以便使用。
(四)AcquireFrame用来获取一帧数据。之后使用ReleaseFrame释放资源。//例如:while (psm->AcquireFrame(true) >= PXC_STATUS_NO_ERROR)
(五)如果要访问数据,首先创建一个Sample结构的实例:
PXCCapture::Sample *sample = psm->QuerySample(); sample的方法有:color;depth;ir;
colorIm = sample->color;
depthIm = sample->depth;
Sample结构体维护了一个从多个流里面获取的图像数组。同时它提供了构造函数,用户可以通过流类型访问图像实例。Sample结构的成员与RealSense提供的视频流
类型一致,我们只需访问需要的类型即可。
QuerySample方法返回在这一时刻所有可用的image(图像)sample。它将返回Sample实例或NULL。
(六)PXCImage ImageData 用来存取深度图像信息,ImageData描述了图像存储细节。例如存储格式,存储缓存以及步长。
然后调用AcquireAccess锁定缓存,指定访问格式,像素格式。
例如:PXCImage *depthIm;//定义一个指针
PXCImage::ImageData depth_data;
depthIm->AcquireAccess(PXCImage::ACCESS_READ, &depth_data)
Access 枚举表示了数据访问的格式,ACCESS_READ是只读模式,可以读访问。