C++ 流对齐处理单元示例代码-Align Filter Viewer


  • 南宫NG·28



  • 南宫NG·28

    C++ 流对齐处理单元示例代码-Align Filter Viewer

    # 流对齐处理单元-AlignFilterViewer

     

    支持设备: Gemini 330系列相机,例如:Gemini G335

     

    功能描述:演示传感器数据流同步对齐的操作,显示对齐后的图像,并通过ESC_KEY键退出程序

     

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

     

    创建pipeline

    ob::Pipeline pipe;

     

    开启color流

    auto colorProfiles = pipe.getStreamProfileList(OB_SENSOR_COLOR);
    if(colorProfiles) {
        colorProfile = colorProfiles->getVideoStreamProfile(1280, OB_HEIGHT_ANY, OB_FORMAT_RGB, 30);
    }
    config->enableStream(colorProfile);

     

    开启深度流

    auto                                    depthProfiles = pipe.getStreamProfileList(OB_SENSOR_DEPTH);
    std::shared_ptr<ob::VideoStreamProfile> depthProfile  = nullptr;
    if(depthProfiles) {
    depthProfile = depthProfiles->getVideoStreamProfile(640, OB_HEIGHT_ANY, OB_FORMAT_Y16, 30);
    //depthProfile = std::const_pointer_cast<ob::StreamProfile>(depthProfiles->getProfile(OB_PROFILE_DEFAULT))->as<ob::VideoStreamProfile>();
    }
    config->enableStream(depthProfile);

     

    设置对齐模式

    /* Config depth align to color or color align to depth.
    OBStreamType align_to_stream = OB_STREAM_DEPTH; */
    OBStreamType align_to_stream = OB_STREAM_COLOR;
    ob::Align align(align_to_stream);

     

    开启pipeline

    pipe.start(config);

     

    获取帧数据

    auto colorFrame = frameSet->colorFrame();
    auto depthFrame = frameSet->depthFrame();

     

    进行对齐处理

    aif(align_to_stream == OB_STREAM_COLOR) {
        app.resize(colorFrame->width(), colorFrame->height());
    }
    else {
        app.resize(depthFrame->width(), depthFrame->height());
    }

     

    关闭pipeline

    pipe.stop();

    预期输出:

    image.png 


    友情链接: