z6娱乐

z6娱乐

C++ 深度流示例代码-Depth Stream Viewer

# 深度示例-DepthViewer

 

职能描述:本示例重要演示了使用SDK获取深度数据并绘造显示、获取分辨率并选择进行设置、显示深度图像,,,,,,并通过ESC_KEY键退出法式

> 本示例基于C++ High Level API进行演示

 

首先必要创建一个Pipeline,,,,,,通过Pipeline能够很容易的打开和关关多种类型的流并获取一组帧数据

ob::Pipeline pipe;

 

获取深度相机的所有流配置,,,,,,蕴含流的分辨率,,,,,,帧率,,,,,,以及帧的体式

//获取深度相机的所有流配置,,,,,,蕴含流的分辨率,,,,,,帧率,,,,,,以及帧的体式
auto profiles = pipe.getStreamProfileList(OB_SENSOR_DEPTH);

std::shared_ptr<ob::VideoStreamProfile> depthProfile = nullptr;
try{
    //凭据指定的体式查找对应的Profile,优先查找Y16体式
    depthProfile = profiles->getVideoStreamProfile(640, 480, OB_FORMAT_Y16, 30);
}catch(ob::Error &e){
    //没找到Y16体式后不匹配体式查找对应的Profile进行开流
    depthProfile = std::const_pointer_cast<ob::StreamProfile>(profiles->getProfile(OB_PROFILE_DEFAULT))->as<ob::VideoStreamProfile>();
}

 

通过创建Config来配置Pipeline要启用或者禁用哪些流,,,,,,这里将启用深度流

std::shared_ptr<ob::Config> config = std::make_shared<ob::Config>();
config->enableStream(depthProfile);

 

选择序列ID

sequenceIdFilter.selectSequenceId(0);

 

启动在Config中配置的流,,,,,,若是不传参数,,,,,,将启动默认配置启动流

pipe.start(config);

 

以阻塞的方式期待一帧数据,,,,,,该帧是一个复合。。。。。。,,,,,里面蕴含配置里启用的所有流的帧数据,,,,,,并设置帧的期待超不断间

auto frameSet = pipe.waitForFrames(100);    //设置期待功夫为100ms

 

终场Pipeline,,,,,,将不再产生帧数据

pipe.stop();

最终的深度图显示如下

image.png

法式正常退出之后资源将会自动开释


【网站地图】【sitemap】