74 config.m_cameras_config_handle =
nullptr;
575 img.m_image_handle =
nullptr;
920 auto im = (
image *)user_data;
921 im->m_buffer_release_cb(buffer);
999 cap.m_capture_handle =
nullptr;
1051 if(
nullptr != image_handle) {
1052 return std::make_shared<image>(std::move(image_handle));
1083 if(
nullptr != image_handle) {
1084 return std::make_shared<image>(std::move(image_handle));
1115 if(
nullptr != image_handle) {
1116 return std::make_shared<image>(std::move(image_handle));
1147 if(
nullptr != image_handle) {
1148 return std::make_shared<image>(std::move(image_handle));
#define CHECK_OB2_STATUS_ERROR_THROW(status)
用于将 C API 中的 ob2_status_t 转换成异常抛出
#define VALIDATE_NOT_NULL(ARG)
用户参数非空校验
相机配置,用于设备内相机的工作配置及设备内与相机工作相关模块、SDK 内与相机工作相关相关模块的工作配置。
virtual void set_cameras_sync_delay_usec(uint32_t delay_usec)
(单机内)多相机同步延时配置
virtual void set_cameras_sync_mode(ob2_cameras_sync_mode_t cameras_sync_mode)
(单机内)多相机同步(同步曝光)模式配置
virtual void set_images_align_mode(ob2_images_align_mode_t images_align_mode)
图像对齐模式配置
virtual void set_produce_capture_policy(ob2_produce_capture_policy_t policy)
capture 生成策略配置
virtual void set_wired_sync_mode(ob2_wired_sync_mode_t wired_sync_mode)
外部同步模式配置(通常是通过同步信号线输入 / 输出同步信号完成同步,所以命名为 wired_sync_mode)
virtual void set_camera_stream_profile(ob2_camera_type_t camera_type, const ob2_camera_stream_profile_t &stream_profile)
设置相机数据流配置
virtual ~cameras_config() noexcept
相机配置析构函数
virtual void set_secondary_delay_off_primary_usec(uint32_t delay_usec)
从设备延时配置(配置为 SECONDARY 模式的设备,在接收到触发信号后,延时一段时间后再执行图像采集)
virtual void enable_camera_stream(ob2_camera_type_t camera_type)
使能相机
virtual ob2_cameras_config_t get_handle()
获取相机配置句柄
virtual void set_images_sync_mode(ob2_images_sync_mode_t images_sync_mode)
设备内多相机图像同步模式配置
virtual void enable_camera_stream(ob2_camera_type_t camera_type, uint32_t width_pixels, uint32_t height_pixels, uint32_t frame_rate, ob2_image_format_t format)
配置相机数据流并使能相机
cameras_config(cameras_config &&config)
通过其他相机配置对象构造(移动构造,主要用于派生类的实现)
ob2_cameras_config_t m_cameras_config_handle
virtual void set_disable_camera_stream(ob2_camera_type_t camera_type)
关闭(去除使能)相机数据流
cameras_config(ob2_cameras_config_t &&cameras_config_handle)
通过传入相机配置句柄构造(主要实现用于 device::create_cameras_config )
相机 capture,capture 是图像对象的载体,一个 capture 通常会包含一个或多个不同类型相机的一帧图像
virtual void set_color_image(std::shared_ptr< image > im)
设置 Color 相机图像
ob2_capture_t m_capture_handle
virtual std::shared_ptr< image > get_color_image()
获取 Color 相机图像
capture(capture &&cap)
通过其他 capture 对象构造(移动构造,主要用于派生类的实现)
virtual void set_image(ob2_camera_type_t camera_type, std::shared_ptr< image > im)
设置指定相机图像
virtual ob2_capture_t get_handle()
获取 capture 句柄
virtual std::shared_ptr< image > get_image(ob2_camera_type_t camera_type)
获取指定相机图像
virtual void set_depth_image(std::shared_ptr< image > im)
设置 Depth 相机图像
virtual std::shared_ptr< image > get_ir_image()
获取 红外 相机图像
virtual ~capture() noexcept
capture 析构函数
virtual void set_ir_image(std::shared_ptr< image > im)
设红外相机图像
virtual std::shared_ptr< image > get_depth_image()
获取 Depth 相机图像
capture(ob2_capture_t &&capture_handle)
通过 capture 句柄构造(主要用于 device::get_capture )
设备类定义,设备类代表着与物理设备的通信连接,可通过设备类访问和控制物理设备。
virtual uint64_t get_device_timestamp_usec()
获取设备时间戳
virtual uint8_t * get_buffer()
获取图像 buffer
virtual ob2_camera_type_t get_source_camera_type()
获取图像源相机类型
virtual ob2_image_t get_handle()
获取图像句柄
virtual ~image() noexcept
图像类析构函数
image(ob2_camera_type_t source_camera_type, ob2_image_format_t image_format, uint32_t width_pixels, uint32_t height_pixels, uint32_t stride_bytes)
自定义图像构造
virtual float get_value_scale()
获取深度图像数值缩放系数
ob2_image_t m_image_handle
virtual uint32_t get_height_pixels()
获取图像高度
virtual uint8_t get_available_bits_for_each_pixel()
获取图像像素有效位数
buffer_release_cb m_buffer_release_cb
virtual uint64_t get_system_timestamp_usec()
获取系统时间戳
virtual uint32_t get_width_pixels()
获取图像宽度
virtual uint32_t get_stride_bytes()
获取图像行跨度
image(ob2_camera_type_t source_camera_type, ob2_image_format_t image_format, uint32_t width_pixels, uint32_t height_pixels, uint32_t stride_bytes, uint8_t *buffer, uint32_t buffer_size, buffer_release_cb cb)
从指定 buffer 构造
virtual ob2_image_format_t get_format()
获取图像格式
static void buffer_release_callback(uint8_t *buffer, void *user_data)
image(ob2_image_t &&image_handle)
通过图像句柄构造(主要用于 capture::get_image )
image(image &&img)
通过其他图像对象构造(移动构造,主要用于派生类的实现)
virtual uint32_t get_size()
获取图像数据大小
std::function< void(std::shared_ptr< capture >)> capture_cb
capture 回调函数
std::function< void(uint8_t *buffer)> buffer_release_cb
buffer 释放回调
void ob2_cameras_config_set_images_sync_mode(ob2_cameras_config_t cameras_config_handle, ob2_images_sync_mode_t images_sync_mode, ob2_status_t *status)
设备内多相机图像同步模式配置
ob2_image_t ob2_capture_get_image(ob2_capture_t capture_handle, ob2_camera_type_t camera_type, ob2_status_t *status)
获取指定相机的图像
ob2_image_t ob2_capture_get_depth_image(ob2_capture_t capture_handle, ob2_status_t *status)
获取 Depth 相机图像
void ob2_cameras_config_set_cameras_sync_mode(ob2_cameras_config_t cameras_config_handle, ob2_cameras_sync_mode_t sync_mode, ob2_status_t *status)
(单机内)多相机同步(同步曝光)模式配置
ob2_image_t ob2_image_create_from_buffer(ob2_camera_type_t source_camera_type, ob2_image_format_t format, uint32_t width_pixels, uint32_t height_pixels, uint32_t stride_bytes, uint8_t *buffer, uint32_t buffer_size, ob2_buffer_release_cb_t buffer_release_cb, void *user_data, ob2_status_t *status)
从指定 buffer 创建图像
void ob2_cameras_config_enable_camera_stream(ob2_cameras_config_t cameras_config_handle, ob2_camera_type_t camera_type, ob2_status_t *status)
使能相机
uint32_t ob2_image_get_width_pixels(ob2_image_t image_handle, ob2_status_t *status)
获取图像宽度
void ob2_capture_set_color_image(ob2_capture_t capture_handle, ob2_image_t image_handle, ob2_status_t *status)
设置 Color 相机的图像
void ob2_cameras_config_set_cameras_sync_delay_usec(ob2_cameras_config_t cameras_config_handle, uint32_t cameras_sync_delay_usec, ob2_status_t *status)
(单机内)多相机同步延时配置,用于控制从相机在主相机图像采集后延时多长时间开始图像采集
void ob2_cameras_config_set_images_align_mode(ob2_cameras_config_t cameras_config_handle, ob2_images_align_mode_t mode, ob2_status_t *status)
图像对齐模式配置
ob2_camera_type_t ob2_image_get_source_camera_type(ob2_image_t image_handle, ob2_status_t *status)
获取图像源相机类型
void ob2_capture_set_image(ob2_capture_t capture_handle, ob2_camera_type_t camera_type, ob2_image_t image_handle, ob2_status_t *status)
设置指定相机的图像
uint8_t * ob2_image_get_buffer(ob2_image_t image_handle, ob2_status_t *status)
获取图像 buffer
void ob2_capture_set_ir_image(ob2_capture_t capture_handle, ob2_image_t image_handle, ob2_status_t *status)
设置红外相机的图像
void ob2_cameras_config_set_produce_capture_policy(ob2_cameras_config_t cameras_config_handle, ob2_produce_capture_policy_t policy, ob2_status_t *status)
capture 生成策略配置
uint64_t ob2_image_get_system_timestamp_usec(ob2_image_t image_handle, ob2_status_t *status)
获取系统时间戳
uint32_t ob2_image_get_height_pixels(ob2_image_t image_handle, ob2_status_t *status)
获取图像高度
ob2_image_t ob2_capture_get_color_image(ob2_capture_t capture_handle, ob2_status_t *status)
获取 Color 相机图像
uint32_t ob2_image_get_size(ob2_image_t image_handle, ob2_status_t *status)
获取图像数据大小
void ob2_cameras_config_set_secondary_delay_off_primary_usec(ob2_cameras_config_t cameras_config_handle, uint32_t secondary_delay_usec, ob2_status_t *status)
从设备延时配置
void ob2_cameras_config_release(ob2_cameras_config_t cameras_config_handle, ob2_status_t *status)
释放相机配置句柄
void ob2_cameras_config_set_wired_sync_mode(ob2_cameras_config_t cameras_config_handle, ob2_wired_sync_mode_t wired_sync_mode, ob2_status_t *status)
外部同步模式配置(通常是通过同步信号线输入 / 输出同步信号完成同步,所以命名为 wired_sync_mode)
void ob2_image_release(ob2_image_t image_handle, ob2_status_t *status)
释放图像
uint32_t ob2_image_get_stride_bytes(ob2_image_t image_handle, ob2_status_t *status)
获取图像行跨度
uint8_t ob2_image_get_available_bits_for_each_pixel(ob2_image_t image_handle, ob2_status_t *status)
获取图像像素有效位数
ob2_capture_t ob2_capture_create(ob2_status_t *status)
创建 capture
void ob2_capture_set_depth_image(ob2_capture_t capture_handle, ob2_image_t image_handle, ob2_status_t *status)
设置 Depth 相机的图像
void ob2_cameras_config_disable_camera_stream(ob2_cameras_config_t cameras_config_handle, ob2_camera_type_t camera_type, ob2_status_t *status)
关闭(去除使能)相机数据流
ob2_image_t ob2_capture_get_ir_image(ob2_capture_t capture_handle, ob2_status_t *status)
获取红外相机图像
ob2_image_t ob2_image_create(ob2_camera_type_t source_camera_type, ob2_image_format_t format, uint32_t width_pixels, uint32_t height_pixels, uint32_t stride_bytes, ob2_status_t *status)
创建图像
void ob2_capture_release(ob2_capture_t capture_handle, ob2_status_t *status)
释放 capture
ob2_image_format_t ob2_image_get_format(ob2_image_t image_handle, ob2_status_t *status)
获取图像格式
void ob2_cameras_config_set_and_enable_camera_stream(ob2_cameras_config_t cameras_config_handle, ob2_camera_type_t camera_type, uint32_t width_pixels, uint32_t height_pixels, uint32_t frame_rate, ob2_image_format_t format, ob2_status_t *status)
配置相机数据流并使能相机
void ob2_cameras_config_set_camera_stream_profile(ob2_cameras_config_t cameras_config_handle, ob2_camera_type_t camera_type, const ob2_camera_stream_profile_t *stream_profile, ob2_status_t *status)
设置相机数据流配置
float ob2_depth_image_get_value_scale(ob2_image_t image_handle, ob2_status_t *status)
获取深度图像数值缩放系数
uint64_t ob2_image_get_device_timestamp_usec(ob2_image_t image_handle, ob2_status_t *status)
获取设备时间戳
ob2_produce_capture_policy_t
ob2_images_align_mode_t
图像对齐模式
struct OB2ImageImpl * ob2_image_t
图像句柄定义
struct OB2CaptureImpl * ob2_capture_t
capture 句柄定义
ob2_images_sync_mode_t
图像同步模式,用于控制生成 capture 时如何同步不同相机的图像
struct OB2CamerasConfigImpl * ob2_cameras_config_t
相机配置句柄定义
ob2_cameras_sync_mode_t
相机同步模式
ob2_wired_sync_mode_t
多机线连接同步模式