OrbbecSDK  1.5.7
OrbbecSDK: Software-Development-Kit for Orbbec 3D-Sensor devices
函数
Pipeline.h 文件参考

SDK的高级API,可以快速实现开关流,帧同步,软件滤波等功能,适用于应用,算法重点关于rgbd数据流场景。如果对实时性或需要单独 处理的同步,对齐的场景。请使用Device的Lower API的接口。 更多...

#include "ObTypes.h"

浏览源代码.

函数

ob_pipelineob_create_pipeline (ob_error **error)
 创建pipeline对象 更多...
 
ob_pipelineob_create_pipeline_with_device (ob_device *dev, ob_error **error)
 使用设备对象来创建pipeline对象 更多...
 
ob_pipelineob_create_pipeline_with_playback_file (const char *file_name, ob_error **error)
 使用回放文件来创建pipeline对象 更多...
 
void ob_delete_pipeline (ob_pipeline *pipeline, ob_error **error)
 删除pipeline对象 更多...
 
void ob_pipeline_start (ob_pipeline *pipeline, ob_error **error)
 以默认参数启动pipeline 更多...
 
void ob_pipeline_start_with_config (ob_pipeline *pipeline, ob_config *config, ob_error **error)
 启动pipeline并配置参数 更多...
 
void ob_pipeline_start_with_callback (ob_pipeline *pipeline, ob_config *config, ob_frameset_callback callback, void *user_data, ob_error **error)
 启动pipeline并设置帧集合数据回调 更多...
 
void ob_pipeline_stop (ob_pipeline *pipeline, ob_error **error)
 停止pipeline 更多...
 
ob_configob_pipeline_get_config (ob_pipeline *pipeline, ob_error **error)
 获取pipeline当前参数 更多...
 
ob_frameob_pipeline_wait_for_frameset (ob_pipeline *pipeline, uint32_t timeout_ms, ob_error **error)
 以同步阻塞的形式等待返回一组帧集合 更多...
 
ob_deviceob_pipeline_get_device (ob_pipeline *pipeline, ob_error **error)
 从pipeline中获取设备 更多...
 
ob_playbackob_pipeline_get_playback (ob_pipeline *pipeline, ob_error **error)
 从pipeline中获取回放对象 更多...
 
ob_stream_profile_listob_pipeline_get_stream_profile_list (ob_pipeline *pipeline, ob_sensor_type sensorType, ob_error **error)
 获取传感器相应的流配置 更多...
 
void ob_pipeline_enable_frame_sync (ob_pipeline *pipeline, ob_error **error)
 打开帧同步功能 更多...
 
void ob_pipeline_disable_frame_sync (ob_pipeline *pipeline, ob_error **error)
 关闭帧同步功能 更多...
 
void ob_pipeline_switch_config (ob_pipeline *pipeline, ob_config *config, ob_error **error)
 动态切换对应的config配置 更多...
 
ob_camera_param ob_pipeline_get_camera_param (ob_pipeline *pipeline, ob_error **error)
 获取当前相机参数 更多...
 
ob_stream_profile_listob_get_d2c_depth_profile_list (ob_pipeline *pipeline, ob_stream_profile *color_profile, ob_align_mode align_mode, ob_error **error)
 返回与输入的彩色传感器分辨率对应的支持D2C的深度传感器分辨率列表 更多...
 
ob_rect ob_get_d2c_valid_area (ob_pipeline *pipeline, uint32_t distance, ob_error **error)
 获取D2C后有效的区域 (废弃接口) 更多...
 
ob_rect ob_get_d2c_range_valid_area (ob_pipeline *pipeline, uint32_t minimum_distance, uint32_t maximum_distance, ob_error **error)
 获取D2C后有效的区域。 如果需要获取指定距离D2C后的ROI区域,将minimum_distance与maximum_distance设置成一样或者将maximum_distance设置成0 更多...
 
void ob_pipeline_start_record (ob_pipeline *pipeline, const char *file_name, ob_error **error)
 开启录制 更多...
 
void ob_pipeline_stop_record (ob_pipeline *pipeline, ob_error **error)
 关闭录制 更多...
 
ob_configob_create_config (ob_error **error)
 创建pipeline的配置 更多...
 
void ob_delete_config (ob_config *config, ob_error **error)
 删除pipeline的配置 更多...
 
void ob_config_enable_stream (ob_config *config, ob_stream_profile *profile, ob_error **error)
 配置要打开的流 更多...
 
void ob_config_enable_all_stream (ob_config *config, ob_error **error)
 配置打开所有的流 更多...
 
void ob_config_disable_stream (ob_config *config, ob_stream_type type, ob_error **error)
 配置要关闭的流 更多...
 
void ob_config_disable_all_stream (ob_config *config, ob_error **error)
 配置关闭所有的流 更多...
 
void ob_config_set_align_mode (ob_config *config, ob_align_mode mode, ob_error **error)
 设置对齐模式 更多...
 
void ob_config_set_depth_scale_require (ob_config *config, bool enable, ob_error **error)
 设置D2C后是否需要缩放深度 更多...
 
void ob_config_set_d2c_target_resolution (ob_config *config, uint32_t d2c_target_width, uint32_t d2c_target_height, ob_error **error)
 设置D2C目标分辨率,适用于未使用OrbbecSDK开启Color流,且需要对深度进行D2C的情况 注意:当使用OrbbecSDK开启Color流时,同时使用了此接口设置了D2C目标分辨率时。优先使用开启的Color流的配置进行D2C。 更多...
 
void ob_config_set_frame_aggregate_output_mode (ob_config *config, ob_frame_aggregate_output_mode mode, ob_error **error)
 数据帧汇聚输出模式 更多...
 

详细描述

SDK的高级API,可以快速实现开关流,帧同步,软件滤波等功能,适用于应用,算法重点关于rgbd数据流场景。如果对实时性或需要单独 处理的同步,对齐的场景。请使用Device的Lower API的接口。

在文件 Pipeline.h 中定义.

函数说明

ob_pipeline* ob_create_pipeline ( ob_error **  error)

创建pipeline对象

参数
[out]error记录错误信息
返回
ob_pipeline* 返回pipeline对象
ob_pipeline* ob_create_pipeline_with_device ( ob_device dev,
ob_error **  error 
)

使用设备对象来创建pipeline对象

参数
[in]dev用于创建pipeline的设备对象
[out]error记录错误信息
返回
ob_pipeline* 返回pipeline对象
ob_pipeline* ob_create_pipeline_with_playback_file ( const char *  file_name,
ob_error **  error 
)

使用回放文件来创建pipeline对象

参数
[in]file_name用于创建pipeline的回放文件路径
[out]error记录错误信息
返回
ob_pipeline* 返回pipeline对象
void ob_delete_pipeline ( ob_pipeline pipeline,
ob_error **  error 
)

删除pipeline对象

参数
[in]pipeline要删除的pipeline对象
[out]error记录错误信息
void ob_pipeline_start ( ob_pipeline pipeline,
ob_error **  error 
)

以默认参数启动pipeline

参数
[in]pipelinepipeline对象
[out]error记录错误信息
void ob_pipeline_start_with_config ( ob_pipeline pipeline,
ob_config config,
ob_error **  error 
)

启动pipeline并配置参数

参数
[in]pipelinepipeline对象
[in]config要配置的参数
[out]error记录错误信息
void ob_pipeline_start_with_callback ( ob_pipeline pipeline,
ob_config config,
ob_frameset_callback  callback,
void *  user_data,
ob_error **  error 
)

启动pipeline并设置帧集合数据回调

参数
[in]pipelinepipeline对象
[in]config要配置的参数
[in]callback帧集合中的所有帧数据都到达时触发回调
[in]user_data可以传入任意用户数据,并从回调中获取
[out]error记录错误信息
void ob_pipeline_stop ( ob_pipeline pipeline,
ob_error **  error 
)

停止pipeline

参数
[in]pipelinepipeline对象
[out]error记录错误信息
ob_config* ob_pipeline_get_config ( ob_pipeline pipeline,
ob_error **  error 
)

获取pipeline当前参数

参数
[in]pipelinepipeline对象
[out]error记录错误信息
返回
ob_config* 返回pipeline参数
ob_frame* ob_pipeline_wait_for_frameset ( ob_pipeline pipeline,
uint32_t  timeout_ms,
ob_error **  error 
)

以同步阻塞的形式等待返回一组帧集合

参数
[in]pipelinepipeline对象
[in]timeout_ms等待超时时间(毫秒)
[out]error记录错误信息
返回
ob_frame* 返回等待的帧集合frameset,frameset是特殊的frame,可以使用frameset相关接口获取集合内的独立frame
ob_device* ob_pipeline_get_device ( ob_pipeline pipeline,
ob_error **  error 
)

从pipeline中获取设备

参数
[in]pipelinepipeline对象
[out]error记录错误信息
返回
ob_device* 返回设备对象
ob_playback* ob_pipeline_get_playback ( ob_pipeline pipeline,
ob_error **  error 
)

从pipeline中获取回放对象

参数
[in]pipelinepipeline对象
[out]error记录错误信息
返回
ob_playback* 返回回放对象
ob_stream_profile_list* ob_pipeline_get_stream_profile_list ( ob_pipeline pipeline,
ob_sensor_type  sensorType,
ob_error **  error 
)

获取传感器相应的流配置

参数
[in]pipelinepipeline对象
[in]sensor_type传感器类型 ,相机支持的sensor_type类型可通过ob_device_get_sensor_list()接口获知
[out]profile_count获取的流配置数量
[out]error记录错误信息
返回
ob_stream_profile_list* 返回流配置列表
void ob_pipeline_enable_frame_sync ( ob_pipeline pipeline,
ob_error **  error 
)

打开帧同步功能

参数
[in]pipelinepipeline对象
[out]error记录错误信息
void ob_pipeline_disable_frame_sync ( ob_pipeline pipeline,
ob_error **  error 
)

关闭帧同步功能

参数
[in]pipelinepipeline对象
[out]error记录错误信息
void ob_pipeline_switch_config ( ob_pipeline pipeline,
ob_config config,
ob_error **  error 
)

动态切换对应的config配置

参数
[in]pipelinepipeline对象
[in]configpipeline的配置
[out]error记录错误信息
ob_camera_param ob_pipeline_get_camera_param ( ob_pipeline pipeline,
ob_error **  error 
)

获取当前相机参数

注意
如果开启了D2C将返回D2C后的相机参数
参数
[in]pipelinepipeline对象
[out]error记录错误信息
返回
ob_camera_param 返回相机内参
ob_stream_profile_list* ob_get_d2c_depth_profile_list ( ob_pipeline pipeline,
ob_stream_profile color_profile,
ob_align_mode  align_mode,
ob_error **  error 
)

返回与输入的彩色传感器分辨率对应的支持D2C的深度传感器分辨率列表

参数
[in]pipelinepipeline对象
[in]color_profile输入的Color Sensor的分辨率
[in]align_mode输入的对齐模式
[out]error记录错误信息
返回
ob_stream_profile_list*
ob_rect ob_get_d2c_valid_area ( ob_pipeline pipeline,
uint32_t  distance,
ob_error **  error 
)

获取D2C后有效的区域 (废弃接口)

参数
[in]pipelinepipeline对象
[in]distance工作距离
[out]error记录错误信息
返回
ob_rect 返回在工作距离下D2C后有效的区域信息
ob_rect ob_get_d2c_range_valid_area ( ob_pipeline pipeline,
uint32_t  minimum_distance,
uint32_t  maximum_distance,
ob_error **  error 
)

获取D2C后有效的区域。 如果需要获取指定距离D2C后的ROI区域,将minimum_distance与maximum_distance设置成一样或者将maximum_distance设置成0

参数
[in]pipelinepipeline对象
[in]minimum_distance最小工作距离
[in]maximum_distance最大工作距离
[out]error记录错误信息
返回
ob_rect 返回在工作距离下D2C后有效的区域信息
void ob_pipeline_start_record ( ob_pipeline pipeline,
const char *  file_name,
ob_error **  error 
)

开启录制

参数
[in]pipelinepipeline对象
[in]file_name录制的文件路径
[out]error记录错误信息
void ob_pipeline_stop_record ( ob_pipeline pipeline,
ob_error **  error 
)

关闭录制

参数
[in]pipelinepipeline对象
[out]error记录错误信息
ob_config* ob_create_config ( ob_error **  error)

创建pipeline的配置

参数
[out]error记录错误信息
返回
ob_config* 返回配置对象
void ob_delete_config ( ob_config config,
ob_error **  error 
)

删除pipeline的配置

参数
[in]config要删除的配置
[out]error记录错误信息
void ob_config_enable_stream ( ob_config config,
ob_stream_profile profile,
ob_error **  error 
)

配置要打开的流

参数
[in]configpipeline的配置
[in]profile要打开的流的配置
[out]error记录错误信息
void ob_config_enable_all_stream ( ob_config config,
ob_error **  error 
)

配置打开所有的流

参数
[in]configpipeline的配置
[out]error记录错误信息
void ob_config_disable_stream ( ob_config config,
ob_stream_type  type,
ob_error **  error 
)

配置要关闭的流

参数
[in]configpipeline的配置
[in]profile要关闭的流的配置
[out]error记录错误信息
void ob_config_disable_all_stream ( ob_config config,
ob_error **  error 
)

配置关闭所有的流

参数
[in]configpipeline的配置
[out]error记录错误信息
void ob_config_set_align_mode ( ob_config config,
ob_align_mode  mode,
ob_error **  error 
)

设置对齐模式

参数
[in]configconfig对象
[in]mode对齐模式
[out]error记录错误信息
void ob_config_set_depth_scale_require ( ob_config config,
bool  enable,
ob_error **  error 
)

设置D2C后是否需要缩放深度

参数
[in]configconfig对象
[in]enable是否需要缩放
[out]error记录错误信息
void ob_config_set_d2c_target_resolution ( ob_config config,
uint32_t  d2c_target_width,
uint32_t  d2c_target_height,
ob_error **  error 
)

设置D2C目标分辨率,适用于未使用OrbbecSDK开启Color流,且需要对深度进行D2C的情况 注意:当使用OrbbecSDK开启Color流时,同时使用了此接口设置了D2C目标分辨率时。优先使用开启的Color流的配置进行D2C。

参数
[in]configconfig对象
[in]d2c_target_widthD2C目标分辨率宽
[in]d2c_target_heightD2C目标分辨率高
[out]error记录错误信息
void ob_config_set_frame_aggregate_output_mode ( ob_config config,
ob_frame_aggregate_output_mode  mode,
ob_error **  error 
)

数据帧汇聚输出模式

用于控制帧汇聚功能生成的FrameSet不包含所有已开启数据流的数据帧时(各路流帧率不同、或者某路流丢帧会导致这样的情况)的处理策略:直接丢弃或者输出给用户

参数
configconfig对象
mode数据帧汇聚输出模式(默认模式为 OB_FRAME_AGGREGATE_OUTPUT_ANY_SITUATION)
error记录错误信息