mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-09-14 03:50:19 +08:00
Update SDK to g2r temp version
This commit is contained in:
@@ -102,6 +102,78 @@ void *ob_frame_data(ob_frame *frame, ob_error **error);
|
|||||||
*/
|
*/
|
||||||
uint32_t ob_frame_data_size(ob_frame *frame, ob_error **error);
|
uint32_t ob_frame_data_size(ob_frame *frame, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the metadata of the frame
|
||||||
|
*
|
||||||
|
* @param[in] frame frame object
|
||||||
|
* @param[out] error Log error messages
|
||||||
|
* @return void* return the metadata pointer of the frame
|
||||||
|
*/
|
||||||
|
void *ob_frame_metadata(ob_frame *frame, ob_error **error);
|
||||||
|
#define ob_video_frame_metadata ob_frame_metadata // for compatibility
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the metadata size of the frame
|
||||||
|
*
|
||||||
|
* @param[in] frame frame object
|
||||||
|
* @param[out] error Log error messages
|
||||||
|
* @return uint32_t return the metadata size of the frame
|
||||||
|
*/
|
||||||
|
uint32_t ob_frame_metadata_size(ob_frame *frame, ob_error **error);
|
||||||
|
#define ob_video_frame_metadata_size ob_frame_metadata_size // for compatibility
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief check if the frame contains the specified metadata
|
||||||
|
*
|
||||||
|
* @param[in] frame frame object
|
||||||
|
* @param[in] type metadata type, refer to @ref ob_frame_metadata_type
|
||||||
|
* @param[out] error Log error messages
|
||||||
|
*/
|
||||||
|
bool ob_frame_has_metadata(ob_frame *frame, ob_frame_metadata_type type, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the metadata value of the frame
|
||||||
|
*
|
||||||
|
* @param[in] frame frame object
|
||||||
|
* @param[in] type metadata type, refer to @ref ob_frame_metadata_type
|
||||||
|
* @param[out] error Log error messages
|
||||||
|
* @return int64_t return the metadata value of the frame
|
||||||
|
*/
|
||||||
|
int64_t ob_frame_get_metadata_value(ob_frame *frame, ob_frame_metadata_type type, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the stream profile of the frame
|
||||||
|
*
|
||||||
|
* @attention Require @ref ob_delete_stream_profile() to release the return stream profile.
|
||||||
|
*
|
||||||
|
* @param frame frame object
|
||||||
|
* @param error Log error messages
|
||||||
|
* @return ob_stream_profile* Return the stream profile of the frame, if the frame is not captured by a sensor stream, it will return NULL
|
||||||
|
*/
|
||||||
|
ob_stream_profile* ob_frame_get_stream_profile(ob_frame *frame, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the sensor of the frame
|
||||||
|
*
|
||||||
|
* @attention Require @ref ob_delete_sensor() to release the return sensor.
|
||||||
|
*
|
||||||
|
* @param[in] frame frame object
|
||||||
|
* @param[out] error Log error messages
|
||||||
|
* @return ob_sensor* return the sensor of the frame, if the frame is not captured by a sensor or the sensor stream has been destroyed, it will return NULL
|
||||||
|
*/
|
||||||
|
ob_sensor* ob_frame_get_sensor(ob_frame *frame, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the device of the frame
|
||||||
|
*
|
||||||
|
* @attention Require @ref ob_delete_device() to release the return device.
|
||||||
|
*
|
||||||
|
* @param frame frame object
|
||||||
|
* @param[out] error Log error messages
|
||||||
|
* @return ob_device* return the device of the frame, if the frame is not captured by a sensor stream or the device has been destroyed, it will return NULL
|
||||||
|
*/
|
||||||
|
ob_device* ob_frame_get_device(ob_frame *frame, ob_error **error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get video frame width
|
* @brief Get video frame width
|
||||||
*
|
*
|
||||||
@@ -120,24 +192,6 @@ uint32_t ob_video_frame_width(ob_frame *frame, ob_error **error);
|
|||||||
*/
|
*/
|
||||||
uint32_t ob_video_frame_height(ob_frame *frame, ob_error **error);
|
uint32_t ob_video_frame_height(ob_frame *frame, ob_error **error);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Get the metadata of the frame
|
|
||||||
*
|
|
||||||
* @param[in] frame Video frame object
|
|
||||||
* @param[out] error Log error messages
|
|
||||||
* @return void* return the metadata pointer of the frame
|
|
||||||
*/
|
|
||||||
void *ob_video_frame_metadata(ob_frame *frame, ob_error **error);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Get the metadata size of the frame
|
|
||||||
*
|
|
||||||
* @param[in] frame Video frame object
|
|
||||||
* @param[out] error Log error messages
|
|
||||||
* @return uint32_t return the metadata size of the frame
|
|
||||||
*/
|
|
||||||
uint32_t ob_video_frame_metadata_size(ob_frame *frame, ob_error **error);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the effective number of pixels (such as Y16 format frame, but only the lower 10 bits are effective bits, and the upper 6 bits are filled with 0)
|
* @brief Get the effective number of pixels (such as Y16 format frame, but only the lower 10 bits are effective bits, and the upper 6 bits are filled with 0)
|
||||||
* @attention Only valid for Y8/Y10/Y11/Y12/Y14/Y16 format
|
* @attention Only valid for Y8/Y10/Y11/Y12/Y14/Y16 format
|
||||||
@@ -239,6 +293,16 @@ ob_frame *ob_frameset_points_frame(ob_frame *frameset, ob_error **error);
|
|||||||
*/
|
*/
|
||||||
ob_frame *ob_frameset_get_frame(ob_frame *frameset, ob_frame_type frame_type, ob_error **error);
|
ob_frame *ob_frameset_get_frame(ob_frame *frameset, ob_frame_type frame_type, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get a frame at a specific index from the FrameSet
|
||||||
|
*
|
||||||
|
* @param[in] frameset Frameset object.
|
||||||
|
* @param[in] index The index of the frame.
|
||||||
|
* @param[out] error Log error messages.
|
||||||
|
* @return ob_frame* Return the frame at the specified index, or nullptr if it does not exist.
|
||||||
|
*/
|
||||||
|
ob_frame *ob_frameset_get_frame_by_index(ob_frame *frameset, int index, ob_error **error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get accelerometer frame data.
|
* @brief Get accelerometer frame data.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -213,11 +213,11 @@ typedef enum {
|
|||||||
OB_FORMAT_MJPG = 5, /**< MJPEG encoding format */
|
OB_FORMAT_MJPG = 5, /**< MJPEG encoding format */
|
||||||
OB_FORMAT_H264 = 6, /**< H.264 encoding format */
|
OB_FORMAT_H264 = 6, /**< H.264 encoding format */
|
||||||
OB_FORMAT_H265 = 7, /**< H.265 encoding format */
|
OB_FORMAT_H265 = 7, /**< H.265 encoding format */
|
||||||
OB_FORMAT_Y16 = 8, /**< Y16 format, single channel 16-bit depth */
|
OB_FORMAT_Y16 = 8, /**< Y16 format, 16-bit per pixel, single-channel*/
|
||||||
OB_FORMAT_Y8 = 9, /**< Y8 format, single channel 8-bit depth */
|
OB_FORMAT_Y8 = 9, /**< Y8 format, 8-bit per pixel, single-channel */
|
||||||
OB_FORMAT_Y10 = 10, /**< Y10 format, single channel 10-bit depth (SDK will unpack into Y16 by default) */
|
OB_FORMAT_Y10 = 10, /**< Y10 format, 10-bit per pixel, single-channel(SDK will unpack into Y16 by default) */
|
||||||
OB_FORMAT_Y11 = 11, /**< Y11 format, single channel 11-bit depth (SDK will unpack into Y16 by default) */
|
OB_FORMAT_Y11 = 11, /**< Y11 format, 11-bit per pixel, single-channel (SDK will unpack into Y16 by default) */
|
||||||
OB_FORMAT_Y12 = 12, /**< Y12 format, single channel 12-bit depth (SDK will unpack into Y16 by default) */
|
OB_FORMAT_Y12 = 12, /**< Y12 format, 12-bit per pixel, single-channel(SDK will unpack into Y16 by default) */
|
||||||
OB_FORMAT_GRAY = 13, /**< GRAY (the actual format is the same as YUYV) */
|
OB_FORMAT_GRAY = 13, /**< GRAY (the actual format is the same as YUYV) */
|
||||||
OB_FORMAT_HEVC = 14, /**< HEVC encoding format (the actual format is the same as H265) */
|
OB_FORMAT_HEVC = 14, /**< HEVC encoding format (the actual format is the same as H265) */
|
||||||
OB_FORMAT_I420 = 15, /**< I420 format */
|
OB_FORMAT_I420 = 15, /**< I420 format */
|
||||||
@@ -228,10 +228,14 @@ typedef enum {
|
|||||||
OB_FORMAT_RLE = 21, /**< RLE pressure test format (SDK will be unpacked into Y16 by default) */
|
OB_FORMAT_RLE = 21, /**< RLE pressure test format (SDK will be unpacked into Y16 by default) */
|
||||||
OB_FORMAT_RGB = 22, /**< RGB format (actual RGB888) */
|
OB_FORMAT_RGB = 22, /**< RGB format (actual RGB888) */
|
||||||
OB_FORMAT_BGR = 23, /**< BGR format (actual BGR888) */
|
OB_FORMAT_BGR = 23, /**< BGR format (actual BGR888) */
|
||||||
OB_FORMAT_Y14 = 24, /**< Y14 format, single channel 14-bit depth (SDK will unpack into Y16 by default) */
|
OB_FORMAT_Y14 = 24, /**< Y14 format, 14-bit per pixel, single-channel (SDK will unpack into Y16 by default) */
|
||||||
OB_FORMAT_BGRA = 25, /**< BGRA format */
|
OB_FORMAT_BGRA = 25, /**< BGRA format */
|
||||||
OB_FORMAT_COMPRESSED = 26, /**< Compression format */
|
OB_FORMAT_COMPRESSED = 26, /**< Compression format */
|
||||||
OB_FORMAT_RVL = 27, /**< RVL pressure test format (SDK will be unpacked into Y16 by default) */
|
OB_FORMAT_RVL = 27, /**< RVL pressure test format (SDK will be unpacked into Y16 by default) */
|
||||||
|
OB_FORMAT_Z16 = 28, /**< Is same as Y16*/
|
||||||
|
OB_FORMAT_YV12 = 29, /**< Is same as Y12, using for right ir stream*/
|
||||||
|
OB_FORMAT_BA81 = 30, /**< Is same as Y8, using for right ir stream*/
|
||||||
|
OB_FORMAT_RGBA = 31, /**< RGBA format */
|
||||||
OB_FORMAT_UNKNOWN = 0xff, /**< unknown format */
|
OB_FORMAT_UNKNOWN = 0xff, /**< unknown format */
|
||||||
} OBFormat,
|
} OBFormat,
|
||||||
ob_format;
|
ob_format;
|
||||||
@@ -325,6 +329,28 @@ typedef struct {
|
|||||||
float def; ///< Default value
|
float def; ///< Default value
|
||||||
} OBFloatPropertyRange, ob_float_property_range;
|
} OBFloatPropertyRange, ob_float_property_range;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Structure for float range
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uint16_t cur; ///< Current value
|
||||||
|
uint16_t max; ///< Maximum value
|
||||||
|
uint16_t min; ///< Minimum value
|
||||||
|
uint16_t step; ///< Step value
|
||||||
|
uint16_t def; ///< Default value
|
||||||
|
} OBUint16PropertyRange, ob_uint16_property_range;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Structure for float range
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uint8_t cur; ///< Current value
|
||||||
|
uint8_t max; ///< Maximum value
|
||||||
|
uint8_t min; ///< Minimum value
|
||||||
|
uint8_t step; ///< Step value
|
||||||
|
uint8_t def; ///< Default value
|
||||||
|
} OBUint8PropertyRange, ob_uint8_property_range;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Structure for boolean range
|
* @brief Structure for boolean range
|
||||||
*/
|
*/
|
||||||
@@ -337,7 +363,7 @@ typedef struct {
|
|||||||
} OBBoolPropertyRange, ob_bool_property_range;
|
} OBBoolPropertyRange, ob_bool_property_range;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Structure for camera internal parameters
|
* @brief Structure for camera intrinsic parameters
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
float fx; ///< Focal length in x direction
|
float fx; ///< Focal length in x direction
|
||||||
@@ -348,6 +374,31 @@ typedef struct {
|
|||||||
int16_t height; ///< Image height
|
int16_t height; ///< Image height
|
||||||
} OBCameraIntrinsic, ob_camera_intrinsic;
|
} OBCameraIntrinsic, ob_camera_intrinsic;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Structure for accelerometer intrinsic parameters
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
double noiseDensity; ///< In-run bias instability
|
||||||
|
double randomWalk; ///< random walk
|
||||||
|
double referenceTemp; ///< reference temperature
|
||||||
|
double bias[3]; ///< bias for x, y, z axis
|
||||||
|
double gravity[3]; ///< gravity direction for x, y, z axis
|
||||||
|
double scaleMisalignment[9]; ///< scale factor and three-axis non-orthogonal error
|
||||||
|
double tempSlope[9]; ///< linear temperature drift coefficient
|
||||||
|
} OBAccelIntrinsic, ob_accel_intrinsic;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Structure for gyroscope intrinsic parameters
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
double noiseDensity; ///< In-run bias instability
|
||||||
|
double randomWalk; ///< random walk
|
||||||
|
double referenceTemp; ///< reference temperature
|
||||||
|
double bias[3]; ///< bias for x, y, z axis
|
||||||
|
double scaleMisalignment[9]; ///< scale factor and three-axis non-orthogonal error
|
||||||
|
double tempSlope[9]; ///< linear temperature drift coefficient
|
||||||
|
} OBGyroIntrinsic, ob_gyro_intrinsic;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Structure for distortion parameters
|
* @brief Structure for distortion parameters
|
||||||
*/
|
*/
|
||||||
@@ -362,13 +413,33 @@ typedef struct {
|
|||||||
float p2; ///< Tangential distortion factor 2
|
float p2; ///< Tangential distortion factor 2
|
||||||
} OBCameraDistortion, ob_camera_distortion;
|
} OBCameraDistortion, ob_camera_distortion;
|
||||||
|
|
||||||
|
/** \brief Distortion model: defines how pixel coordinates should be mapped to sensor coordinates. */
|
||||||
|
typedef enum {
|
||||||
|
OB_DISTORTION_NONE, /**< Rectilinear images. No distortion compensation required. */
|
||||||
|
OB_DISTORTION_INVERSE_BROWN_CONRADY, /**< Equivalent to Brown-Conrady distortion, except undistorts image instead of distorting it */
|
||||||
|
OB_DISTORTION_BROWN_CONRADY, /**< Unmodified Brown-Conrady distortion model */
|
||||||
|
} OBCameraDistortionModel, ob_camera_distortion_model;
|
||||||
|
|
||||||
|
/** \brief Video stream intrinsics. */
|
||||||
|
typedef struct {
|
||||||
|
int width; /**< Width of the image in pixels */
|
||||||
|
int height; /**< Height of the image in pixels */
|
||||||
|
float ppx; /**< Horizontal coordinate of the principal point of the image, as a pixel offset from the left edge */
|
||||||
|
float ppy; /**< Vertical coordinate of the principal point of the image, as a pixel offset from the top edge */
|
||||||
|
float fx; /**< Focal length of the image plane, as a multiple of pixel width */
|
||||||
|
float fy; /**< Focal length of the image plane, as a multiple of pixel height */
|
||||||
|
OBCameraDistortionModel model; /**< Distortion model of the image */
|
||||||
|
float coeffs[5]; /**< Distortion coefficients. Order for Brown-Conrady: [k1, k2, p1, p2, k3]. Order for F-Theta Fish-eye: [k1, k2, k3, k4, 0]. Other models
|
||||||
|
are subject to their own interpretations */
|
||||||
|
} OBCameraAlignIntrinsic, ob_camera_align_intrinsic;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Structure for rotation/transformation
|
* @brief Structure for rotation/transformation
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
float rot[9]; ///< Rotation matrix
|
float rot[9]; ///< Rotation matrix
|
||||||
float trans[3]; ///< Transformation matrix
|
float trans[3]; ///< Transformation matrix in millimeters
|
||||||
} OBD2CTransform, ob_d2c_transform, OBTransform, ob_transform;
|
} OBD2CTransform, ob_d2c_transform, OBTransform, ob_transform, OBExtrinsic, ob_extrinsic;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Structure for camera parameters
|
* @brief Structure for camera parameters
|
||||||
@@ -400,7 +471,7 @@ typedef struct {
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
OBCameraIntrinsic intrinsics[OB_SENSOR_COUNT]; ///< Sensor internal parameters
|
OBCameraIntrinsic intrinsics[OB_SENSOR_COUNT]; ///< Sensor internal parameters
|
||||||
OBCameraDistortion distortion[OB_SENSOR_COUNT]; ///< Sensor distortion
|
OBCameraDistortion distortion[OB_SENSOR_COUNT]; ///< Sensor distortion
|
||||||
OBTransform extrinsics[OB_SENSOR_COUNT][OB_SENSOR_COUNT]; ///< The extrinsic parameters allow 3D coordinate conversions between sensor.To transform from a
|
OBExtrinsic extrinsics[OB_SENSOR_COUNT][OB_SENSOR_COUNT]; ///< The extrinsic parameters allow 3D coordinate conversions between sensor.To transform from a
|
||||||
///< source to a target 3D coordinate system,under extrinsics[source][target].
|
///< source to a target 3D coordinate system,under extrinsics[source][target].
|
||||||
} OBCalibrationParam, ob_calibration_param;
|
} OBCalibrationParam, ob_calibration_param;
|
||||||
|
|
||||||
@@ -456,28 +527,41 @@ typedef struct {
|
|||||||
* @brief Enumeration of format conversion types
|
* @brief Enumeration of format conversion types
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
FORMAT_YUYV_TO_RGB888 = 0, /**< YUYV to RGB888 */
|
FORMAT_YUYV_TO_RGB = 0, /**< YUYV to RGB */
|
||||||
FORMAT_I420_TO_RGB888, /**< I420 to RGB888 */
|
FORMAT_I420_TO_RGB, /**< I420 to RGB */
|
||||||
FORMAT_NV21_TO_RGB888, /**< NV21 to RGB888 */
|
FORMAT_NV21_TO_RGB, /**< NV21 to RGB */
|
||||||
FORMAT_NV12_TO_RGB888, /**< NV12 to RGB888 */
|
FORMAT_NV12_TO_RGB, /**< NV12 to RGB */
|
||||||
FORMAT_MJPG_TO_I420, /**< MJPG to I420 */
|
FORMAT_MJPG_TO_I420, /**< MJPG to I420 */
|
||||||
FORMAT_RGB888_TO_BGR, /**< RGB888 to BGR */
|
FORMAT_RGB_TO_BGR, /**< RGB888 to BGR */
|
||||||
FORMAT_MJPG_TO_NV21, /**< MJPG to NV21 */
|
FORMAT_MJPG_TO_NV21, /**< MJPG to NV21 */
|
||||||
FORMAT_MJPG_TO_RGB888, /**< MJPG to RGB888 */
|
FORMAT_MJPG_TO_RGB, /**< MJPG to RGB */
|
||||||
FORMAT_MJPG_TO_BGR888, /**< MJPG to BGR888 */
|
FORMAT_MJPG_TO_BGR, /**< MJPG to BGR */
|
||||||
FORMAT_MJPG_TO_BGRA, /**< MJPG to BGRA */
|
FORMAT_MJPG_TO_BGRA, /**< MJPG to BGRA */
|
||||||
FORMAT_UYVY_TO_RGB888, /**< UYVY to RGB888 */
|
FORMAT_UYVY_TO_RGB, /**< UYVY to RGB */
|
||||||
FORMAT_BGR_TO_RGB, /**< BGR to RGB */
|
FORMAT_BGR_TO_RGB, /**< BGR to RGB */
|
||||||
FORMAT_MJPG_TO_NV12, /**< MJPG to NV12 */
|
FORMAT_MJPG_TO_NV12, /**< MJPG to NV12 */
|
||||||
|
FORMAT_YUYV_TO_BGR, /**< YUYV to BGR */
|
||||||
|
FORMAT_YUYV_TO_RGBA, /**< YUYV to RGBA */
|
||||||
|
FORMAT_YUYV_TO_BGRA, /**< YUYV to BGRA */
|
||||||
|
FORMAT_YUYV_TO_Y16, /**< YUYV to Y16 */
|
||||||
|
FORMAT_YUYV_TO_Y8, /**< YUYV to Y8 */
|
||||||
} OBConvertFormat,
|
} OBConvertFormat,
|
||||||
ob_convert_format;
|
ob_convert_format;
|
||||||
|
|
||||||
// DEPRECATED: Only used for old version program compatibility, will be completely deleted in subsequent iterative versions
|
// DEPRECATED: Only used for old version program compatibility, will be completely deleted in subsequent iterative versions
|
||||||
#define FORMAT_MJPEG_TO_I420 FORMAT_MJPG_TO_I420
|
#define FORMAT_MJPEG_TO_I420 FORMAT_MJPG_TO_I420
|
||||||
#define FORMAT_MJPEG_TO_NV21 FORMAT_MJPG_TO_NV21
|
#define FORMAT_MJPEG_TO_NV21 FORMAT_MJPG_TO_NV21
|
||||||
#define FORMAT_MJPEG_TO_RGB888 FORMAT_MJPG_TO_RGB888
|
|
||||||
#define FORMAT_MJPEG_TO_BGR888 FORMAT_MJPG_TO_BGR888
|
|
||||||
#define FORMAT_MJPEG_TO_BGRA FORMAT_MJPG_TO_BGRA
|
#define FORMAT_MJPEG_TO_BGRA FORMAT_MJPG_TO_BGRA
|
||||||
|
#define FORMAT_YUYV_TO_RGB888 FORMAT_YUYV_TO_RGB
|
||||||
|
#define FORMAT_I420_TO_RGB888 FORMAT_I420_TO_RGB
|
||||||
|
#define FORMAT_NV21_TO_RGB888 FORMAT_NV21_TO_RGB
|
||||||
|
#define FORMAT_NV12_TO_RGB888 FORMAT_NV12_TO_RGB
|
||||||
|
#define FORMAT_UYVY_TO_RGB888 FORMAT_UYVY_TO_RGB
|
||||||
|
#define FORMAT_MJPG_TO_RGB888 FORMAT_MJPG_TO_RGB
|
||||||
|
#define FORMAT_MJPG_TO_BGR888 FORMAT_MJPG_TO_BGR
|
||||||
|
#define FORMAT_MJPEG_TO_RGB888 FORMAT_MJPG_TO_RGB
|
||||||
|
#define FORMAT_MJPEG_TO_BGR888 FORMAT_MJPG_TO_BGR
|
||||||
|
#define FORMAT_RGB888_TO_BGR FORMAT_RGB_TO_BGR
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enumeration of IMU sample rate values (gyroscope or accelerometer)
|
* @brief Enumeration of IMU sample rate values (gyroscope or accelerometer)
|
||||||
@@ -848,6 +932,37 @@ typedef struct {
|
|||||||
char name[32];
|
char name[32];
|
||||||
} OBDepthWorkMode, ob_depth_work_mode;
|
} OBDepthWorkMode, ob_depth_work_mode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Hole fillig mode
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
OB_HOLE_FILL_TOP = 0,
|
||||||
|
OB_HOLE_FILL_NEAREST = 1, // "max" means farest for depth, and nearest for disparity; FILL_NEAREST
|
||||||
|
OB_HOLE_FILL_FAREST = 2, // FILL_FAREST
|
||||||
|
} OBHoleFillingMode, ob_hole_filling_mode;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t magnitude; // magnitude
|
||||||
|
float alpha; // smooth_alpha
|
||||||
|
uint16_t disp_diff; // smooth_delta
|
||||||
|
uint16_t radius; // hole_fill
|
||||||
|
} OBSpatialAdvancedFilterParams, ob_spatial_advanced_filter_params;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 去噪方式
|
||||||
|
*/
|
||||||
|
typedef enum OB_DDO_NOISE_REMOVAL_TYPE {
|
||||||
|
OB_NR_LUT = 0, // SPLIT
|
||||||
|
OB_NR_OVERALL = 1, // NON_SPLIT
|
||||||
|
} OBDDONoiseRemovalType, ob_ddo_noise_removal_type;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t size;
|
||||||
|
uint16_t disp_diff;
|
||||||
|
OBDDONoiseRemovalType type;
|
||||||
|
} OBNoiseRemovalFilterParams, ob_noise_removal_filter_params;
|
||||||
|
;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Control command protocol version number
|
* @brief Control command protocol version number
|
||||||
*/
|
*/
|
||||||
@@ -1254,6 +1369,225 @@ typedef struct {
|
|||||||
float zpd;
|
float zpd;
|
||||||
} BASELINE_CALIBRATION_PARAM, ob_baseline_calibration_param, OBBaselineCalibrationParam;
|
} BASELINE_CALIBRATION_PARAM, ob_baseline_calibration_param, OBBaselineCalibrationParam;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief HDR Configuration
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Enable/disable HDR, after enabling HDR, the exposure_1 and gain_1 will be used as the first exposure and gain, and the exposure_2 and gain_2 will
|
||||||
|
* be used as the second exposure and gain. The output image will be alternately exposed and gain between the first and second
|
||||||
|
* exposure and gain.
|
||||||
|
*
|
||||||
|
* @attention After enabling HDR, the auto exposure will be disabled.
|
||||||
|
*/
|
||||||
|
uint8_t enable;
|
||||||
|
uint8_t sequence_name; ///< Sequence name
|
||||||
|
uint32_t exposure_1; ///< Exposure time 1
|
||||||
|
uint32_t gain_1; ///< Gain 1
|
||||||
|
uint32_t exposure_2; ///< Exposure time 2
|
||||||
|
uint32_t gain_2; ///< Gain 2
|
||||||
|
} HDR_CONFIG, ob_hdr_config, OBHdrConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The rect of the region of interest
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
int16_t x0_left;
|
||||||
|
int16_t y0_top;
|
||||||
|
int16_t x1_right;
|
||||||
|
int16_t y1_bottom;
|
||||||
|
} AE_ROI, ob_region_of_interest, OBRegionOfInterest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Frame metadata types
|
||||||
|
* @brief The frame metadata is a set of meta info generated by the device for current individual frame.
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
/**
|
||||||
|
* @brief Timestamp when the frame is captured.
|
||||||
|
* @attention Different device models may have different units. It is recommended to use the timestamp related functions to get the timestamp in the
|
||||||
|
* correct units.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_TIMESTAMP = 0,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Timestamp in the middle of the capture.
|
||||||
|
* @brief Usually is the middle of the exposure time.
|
||||||
|
*
|
||||||
|
* @attention Different device models may have different units.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_SENSOR_TIMESTAMP = 1,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The number of current frame.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_FRAME_NUMBER = 2,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Auto exposure status
|
||||||
|
* @brief If the value is 0, it means the auto exposure is disabled. Otherwise, it means the auto exposure is enabled.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_AUTO_EXPOSURE = 3,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Exposure time
|
||||||
|
*
|
||||||
|
* @attention Different sensor may have different units. Usually, it is 100us for color sensor and 1us for depth/infrared sensor.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_EXPOSURE = 4,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gain
|
||||||
|
*
|
||||||
|
* @attention For some device models, the gain value represents the gain level, not the multiplier.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_GAIN = 5,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Auto white balance status
|
||||||
|
* @brief If the value is 0, it means the auto white balance is disabled. Otherwise, it means the auto white balance is enabled.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_AUTO_WHITE_BALANCE = 6,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief White balance
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_WHITE_BALANCE = 7,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Brightness
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_BRIGHTNESS = 8,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Contrast
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_CONTRAST = 9,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Saturation
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_SATURATION = 10,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sharpness
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_SHARPNESS = 11,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Backlight compensation
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_BACKLIGHT_COMPENSATION = 12,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Hue
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_HUE = 13,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gamma
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_GAMMA = 14,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Power line frequency
|
||||||
|
* @brief For anti-flickering, 0:Close, 1: 50Hz, 2: 60Hz, 3: Auto
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_POWER_LINE_FREQUENCY = 15,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Low light compensation
|
||||||
|
*
|
||||||
|
* @attention The low light compensation is a feature inside the device,and can not manually control it.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_LOW_LIGHT_COMPENSATION = 16,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Manual white balance setting
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_MANUAL_WHITE_BALANCE = 17,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Actual frame rate
|
||||||
|
* @brief The actual frame rate will be calculated according to the exposure time and other parameters.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_ACTUAL_FRAME_RATE = 18,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Frame rate
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_FRAME_RATE = 19,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Left region of interest for the auto exposure Algorithm.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_AE_ROI_LEFT = 20,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Top region of interest for the auto exposure Algorithm.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_AE_ROI_TOP = 21,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Right region of interest for the auto exposure Algorithm.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_AE_ROI_RIGHT = 22,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Bottom region of interest for the auto exposure Algorithm.
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_AE_ROI_BOTTOM = 23,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Exposure priority
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_EXPOSURE_PRIORITY = 24,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief HDR sequence name
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_HDR_SEQUENCE_NAME = 25,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief HDR sequence size
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_HDR_SEQUENCE_SIZE = 26,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief HDR sequence index
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_HDR_SEQUENCE_INDEX = 27,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Laser power value in mW
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_LASER_POWER = 28,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Laser power mode
|
||||||
|
* @brief 0: Laser off, 1: Laser on
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_LASER_POWER_MODE = 29,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Emitter mode
|
||||||
|
* @brief 0: Laser off, 1: Laser on, 2: auto
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_EMITTER_MODE = 30,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GPIO input data
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_GPIO_INPUT_DATA = 31,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The number of frame metadata types, using for types iterating
|
||||||
|
*/
|
||||||
|
OB_FRAME_METADATA_TYPE_COUNT,
|
||||||
|
} ob_frame_metadata_type,
|
||||||
|
OBFrameMetadataType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Callback for file transfer
|
* @brief Callback for file transfer
|
||||||
*
|
*
|
||||||
@@ -1356,8 +1690,6 @@ typedef void(ob_frame_destroy_callback)(void *buffer, void *user_data);
|
|||||||
*/
|
*/
|
||||||
typedef void(ob_log_callback)(ob_log_severity severity, const char *message, void *user_data);
|
typedef void(ob_log_callback)(ob_log_severity severity, const char *message, void *user_data);
|
||||||
|
|
||||||
typedef void(ob_get_imu_data_callback)(const uint8_t *data, uint32_t dataLen);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check if sensor_type is an IR sensor
|
* @brief Check if sensor_type is an IR sensor
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ void ob_pipeline_stop(ob_pipeline *pipeline, ob_error **error);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the configuration object associated with the pipeline
|
* @brief Get the configuration object associated with the pipeline
|
||||||
|
* @brief Returns default configuration if the user has not configured
|
||||||
*
|
*
|
||||||
* @param[in] pipeline The pipeline object
|
* @param[in] pipeline The pipeline object
|
||||||
* @param[out] error Log error messages
|
* @param[out] error Log error messages
|
||||||
@@ -262,6 +263,7 @@ void ob_delete_config(ob_config *config, ob_error **error);
|
|||||||
void ob_config_enable_stream(ob_config *config, ob_stream_profile *profile, ob_error **error);
|
void ob_config_enable_stream(ob_config *config, ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @deprecated Use @ref ob_config_enable_stream instead
|
||||||
* @brief Enable all streams in the pipeline configuration
|
* @brief Enable all streams in the pipeline configuration
|
||||||
*
|
*
|
||||||
* @param[in] config The pipeline configuration
|
* @param[in] config The pipeline configuration
|
||||||
@@ -269,6 +271,15 @@ void ob_config_enable_stream(ob_config *config, ob_stream_profile *profile, ob_e
|
|||||||
*/
|
*/
|
||||||
void ob_config_enable_all_stream(ob_config *config, ob_error **error);
|
void ob_config_enable_all_stream(ob_config *config, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the enabled stream profile list in the pipeline configuration
|
||||||
|
*
|
||||||
|
* @param config The pipeline configuration
|
||||||
|
* @param error Log error messages
|
||||||
|
* @return ob_stream_profile_list* The enabled stream profile list, should be released by @ref ob_delete_stream_profile_list after use
|
||||||
|
*/
|
||||||
|
ob_stream_profile_list *ob_config_get_enabled_stream_profile_list(ob_config *config, ob_error **error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Disable a specific stream in the pipeline configuration
|
* @brief Disable a specific stream in the pipeline configuration
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -384,6 +384,29 @@ typedef enum {
|
|||||||
*/
|
*/
|
||||||
OB_PROP_LASER_PULSE_WIDTH_PROTECTION_STATUS_BOOL = 149,
|
OB_PROP_LASER_PULSE_WIDTH_PROTECTION_STATUS_BOOL = 149,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Laser always on, true: always on, false: off, laser will be turned off when out of exposure time
|
||||||
|
*/
|
||||||
|
OB_PROP_LASER_ALWAYS_ON_BOOL = 174,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Laser on/off alternate mode, 0: off, 1: on-off alternate, 2: off-on alternate
|
||||||
|
* @attention When turn on this mode, the laser will turn on and turn off alternately each frame.
|
||||||
|
*/
|
||||||
|
OB_PROP_LASER_ON_OFF_MODE_INT = 175,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Depth unit flexible adjustment\
|
||||||
|
* @brief This property allows continuous adjustment of the depth unit, unlike @ref OB_PROP_DEPTH_PRECISION_LEVEL_INT must be set to some fixed value.
|
||||||
|
*/
|
||||||
|
OB_PROP_DEPTH_UNIT_FLEXIBLE_ADJUSTMENT_FLOAT = 176,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Laser control, 0: off, 1: on, 2: auto
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
OB_PROP_LASER_CONTROL_INT = 182,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Baseline calibration parameters
|
* @brief Baseline calibration parameters
|
||||||
*/
|
*/
|
||||||
@@ -442,6 +465,32 @@ typedef enum {
|
|||||||
*/
|
*/
|
||||||
OB_STRUCT_DEVICE_STATIC_IP_CONFIG_RECORD = 1053,
|
OB_STRUCT_DEVICE_STATIC_IP_CONFIG_RECORD = 1053,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Using to configure the depth sensor's HDR mode
|
||||||
|
* @brief The Value type is @ref OBHdrConfig
|
||||||
|
*
|
||||||
|
* @attention After enable HDR mode, the depth sensor auto exposure will be disabled.
|
||||||
|
*/
|
||||||
|
OB_STRUCT_DEPTH_HDR_CONFIG = 1059,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Color Sensor AE ROI configuration
|
||||||
|
* @brief The Value type is @ref OBRegionOfInterest
|
||||||
|
*/
|
||||||
|
OB_STRUCT_COLOR_AE_ROI = 1060,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Depth Sensor AE ROI configuration
|
||||||
|
* @brief The Value type is @ref OBRegionOfInterest
|
||||||
|
* @brief Since the ir sensor is the same physical sensor as the depth sensor, this property will also effect the ir sensor.
|
||||||
|
*/
|
||||||
|
OB_STRUCT_DEPTH_AE_ROI = 1061,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief ASIC serial number
|
||||||
|
*/
|
||||||
|
OB_STRUCT_ASIC_SERIAL_NUMBER = 1063,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Color camera auto exposure
|
* @brief Color camera auto exposure
|
||||||
*/
|
*/
|
||||||
@@ -592,6 +641,11 @@ typedef enum {
|
|||||||
*/
|
*/
|
||||||
OB_PROP_SKIP_FRAME_BOOL = 2036,
|
OB_PROP_SKIP_FRAME_BOOL = 2036,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Depth HDR merge, true: on, false: off.
|
||||||
|
*/
|
||||||
|
OB_PROP_HDR_MERGE_BOOL = 2037,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Software disparity to depth
|
* @brief Software disparity to depth
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ extern "C" {
|
|||||||
/**
|
/**
|
||||||
* @brief Get stream profile format
|
* @brief Get stream profile format
|
||||||
*
|
*
|
||||||
* @param[in] profile Stream configuration object
|
* @param[in] profile Stream profile object
|
||||||
* @param[out] error Log error messages
|
* @param[out] error Log error messages
|
||||||
* @return ob_format return the format of the stream
|
* @return ob_format return the format of the stream
|
||||||
*/
|
*/
|
||||||
@@ -23,42 +23,71 @@ ob_format ob_stream_profile_format(ob_stream_profile *profile, ob_error **error)
|
|||||||
/**
|
/**
|
||||||
* @brief Get stream profile type
|
* @brief Get stream profile type
|
||||||
*
|
*
|
||||||
* @param[in] profile Stream configuration object
|
* @param[in] profile Stream profile object
|
||||||
* @param[out] error Log error messages
|
* @param[out] error Log error messages
|
||||||
* @return ob_stream_type stream type
|
* @return ob_stream_type stream type
|
||||||
*/
|
*/
|
||||||
ob_stream_type ob_stream_profile_type(ob_stream_profile *profile, ob_error **error);
|
ob_stream_type ob_stream_profile_type(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the frame rate of the video stream configuration
|
* @brief Get the extrinsic for source stream to target stream
|
||||||
*
|
*
|
||||||
* @param[in] profile Stream configuration object
|
* @param source Source stream profile
|
||||||
|
* @param target Target stream profile
|
||||||
|
* @param error Log error messages
|
||||||
|
* @return ob_extrinsic The extrinsic
|
||||||
|
*/
|
||||||
|
ob_extrinsic ob_stream_profile_get_extrinsic_to(ob_stream_profile *source, ob_stream_profile *target, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the frame rate of the video stream
|
||||||
|
*
|
||||||
|
* @param[in] profile Stream profile object
|
||||||
* @param[out] error Log error messages
|
* @param[out] error Log error messages
|
||||||
* @return uint32_t return the frame rate of the stream
|
* @return uint32_t return the frame rate of the stream
|
||||||
*/
|
*/
|
||||||
uint32_t ob_video_stream_profile_fps(ob_stream_profile *profile, ob_error **error);
|
uint32_t ob_video_stream_profile_fps(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the width of the video stream configuration
|
* @brief Get the width of the video stream
|
||||||
*
|
*
|
||||||
* @param[in] profile Stream configuration object, if the configuration is not a video stream configuration, an error will be returned
|
* @param[in] profile Stream profile object , If the profile is not a video stream configuration, an error will be returned
|
||||||
* @param[out] error Log error messages
|
* @param[out] error Log error messages
|
||||||
* @return uint32_t return the width of the stream
|
* @return uint32_t return the width of the stream
|
||||||
*/
|
*/
|
||||||
uint32_t ob_video_stream_profile_width(ob_stream_profile *profile, ob_error **error);
|
uint32_t ob_video_stream_profile_width(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the height of the video stream configuration
|
* @brief Get the height of the video stream
|
||||||
*
|
*
|
||||||
* @param[in] profile Stream configuration object, if the configuration is not a video stream configuration, an error will be returned
|
* @param[in] profile Stream profile object , If the profile is not a video stream configuration, an error will be returned
|
||||||
* @param[out] error Log error messages
|
* @param[out] error Log error messages
|
||||||
* @return uint32_t return the height of the stream
|
* @return uint32_t return the height of the stream
|
||||||
*/
|
*/
|
||||||
uint32_t ob_video_stream_profile_height(ob_stream_profile *profile, ob_error **error);
|
uint32_t ob_video_stream_profile_height(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the intrinsic of the video stream
|
||||||
|
*
|
||||||
|
* @param profile Stream profile object
|
||||||
|
* @param error Log error messages
|
||||||
|
* @return ob_camera_intrinsic Return the intrinsic of the stream
|
||||||
|
*/
|
||||||
|
ob_camera_intrinsic ob_video_stream_get_intrinsic(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the distortion of the video stream
|
||||||
|
*
|
||||||
|
* @param profile Stream profile object
|
||||||
|
* @param error Log error messages
|
||||||
|
* @return ob_camera_distortion Return the distortion of the stream
|
||||||
|
*/
|
||||||
|
ob_camera_distortion ob_video_stream_get_distortion(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the full-scale range of the accelerometer stream.
|
* @brief Get the full-scale range of the accelerometer stream.
|
||||||
*
|
*
|
||||||
* @param[in] profile Stream configuration object. If the configuration is not for the accelerometer stream, an error will be returned.
|
* @param[in] profile Stream profile object. If the profile is not for the accelerometer stream, an error will be returned.
|
||||||
* @param[out] error Log error messages.
|
* @param[out] error Log error messages.
|
||||||
* @return The full-scale range of the accelerometer stream.
|
* @return The full-scale range of the accelerometer stream.
|
||||||
*/
|
*/
|
||||||
@@ -67,25 +96,43 @@ ob_accel_full_scale_range ob_accel_stream_profile_full_scale_range(ob_stream_pro
|
|||||||
/**
|
/**
|
||||||
* @brief Get the sampling frequency of the accelerometer frame.
|
* @brief Get the sampling frequency of the accelerometer frame.
|
||||||
*
|
*
|
||||||
* @param[in] profile Stream configuration object. If the configuration is not for the accelerometer stream, an error will be returned.
|
* @param[in] profile Stream profile object. If the profile is not for the accelerometer stream, an error will be returned.
|
||||||
* @param[out] error Log error messages.
|
* @param[out] error Log error messages.
|
||||||
* @return The sampling frequency of the accelerometer frame.
|
* @return The sampling frequency of the accelerometer frame.
|
||||||
*/
|
*/
|
||||||
ob_accel_sample_rate ob_accel_stream_profile_sample_rate(ob_stream_profile *profile, ob_error **error);
|
ob_accel_sample_rate ob_accel_stream_profile_sample_rate(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the intrinsic of the accelerometer stream.
|
||||||
|
*
|
||||||
|
* @param profile Stream profile object. If the profile is not for the accelerometer stream, an error will be returned.
|
||||||
|
* @param error Log error messages.
|
||||||
|
* @return ob_accel_intrinsic Return the intrinsic of the accelerometer stream.
|
||||||
|
*/
|
||||||
|
ob_accel_intrinsic ob_accel_stream_profile_get_intrinsic(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the full-scale range of the gyroscope stream.
|
* @brief Get the full-scale range of the gyroscope stream.
|
||||||
*
|
*
|
||||||
* @param[in] profile Stream configuration object. If the configuration is not for the gyroscope stream, an error will be returned.
|
* @param[in] profile Stream profile object. If the profile is not for the gyroscope stream, an error will be returned.
|
||||||
* @param[out] error Log error messages.
|
* @param[out] error Log error messages.
|
||||||
* @return The full-scale range of the gyroscope stream.
|
* @return The full-scale range of the gyroscope stream.
|
||||||
*/
|
*/
|
||||||
ob_gyro_full_scale_range ob_gyro_stream_profile_full_scale_range(ob_stream_profile *profile, ob_error **error);
|
ob_gyro_full_scale_range ob_gyro_stream_profile_full_scale_range(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the intrinsic of the gyroscope stream.
|
||||||
|
*
|
||||||
|
* @param profile Stream profile object. If the profile is not for the gyroscope stream, an error will be returned.
|
||||||
|
* @param error Log error messages.
|
||||||
|
* @return ob_gyro_intrinsic Return the intrinsic of the gyroscope stream.
|
||||||
|
*/
|
||||||
|
ob_gyro_intrinsic ob_gyro_stream_get_intrinsic(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the sampling frequency of the gyroscope stream.
|
* @brief Get the sampling frequency of the gyroscope stream.
|
||||||
*
|
*
|
||||||
* @param[in] profile Stream configuration object. If the configuration is not for the gyroscope stream, an error will be returned.
|
* @param[in] profile Stream profile object. If the profile is not for the gyroscope stream, an error will be returned.
|
||||||
* @param[out] error Log error messages.
|
* @param[out] error Log error messages.
|
||||||
* @return The sampling frequency of the gyroscope stream.
|
* @return The sampling frequency of the gyroscope stream.
|
||||||
*/
|
*/
|
||||||
@@ -162,7 +209,7 @@ void ob_delete_stream_profile_list(ob_stream_profile_list *profile_list, ob_erro
|
|||||||
/**
|
/**
|
||||||
* @brief Delete the stream configuration.
|
* @brief Delete the stream configuration.
|
||||||
*
|
*
|
||||||
* @param[in] profile Stream configuration object.
|
* @param[in] profile Stream profile object .
|
||||||
* @param[out] error Log error messages.
|
* @param[out] error Log error messages.
|
||||||
*/
|
*/
|
||||||
void ob_delete_stream_profile(ob_stream_profile *profile, ob_error **error);
|
void ob_delete_stream_profile(ob_stream_profile *profile, ob_error **error);
|
||||||
|
|||||||
@@ -37,23 +37,6 @@ bool ob_calibration_3d_to_3d(const ob_calibration_param calibration_param, const
|
|||||||
bool ob_calibration_2d_to_3d(const ob_calibration_param calibration_param, const ob_point2f source_point2f, const float source_depth_pixel_value,
|
bool ob_calibration_2d_to_3d(const ob_calibration_param calibration_param, const ob_point2f source_point2f, const float source_depth_pixel_value,
|
||||||
const ob_sensor_type source_sensor_type, const ob_sensor_type target_sensor_type, ob_point3f *target_point3f, ob_error **error);
|
const ob_sensor_type source_sensor_type, const ob_sensor_type target_sensor_type, ob_point3f *target_point3f, ob_error **error);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Transform a 2d pixel coordinate with an associated depth value of the source camera into a 3d point of the target coordinate system.
|
|
||||||
*
|
|
||||||
* @param[in] calibration_param Device calibration param,see pipeline::getCalibrationParam
|
|
||||||
* @param[in] source_point2f Source 2d point value
|
|
||||||
* @param[in] source_depth_pixel_value The depth of sourcePoint2f in millimeters
|
|
||||||
* @param[in] source_sensor_type Source sensor type
|
|
||||||
* @param[in] target_sensor_type Target sensor type
|
|
||||||
* @param[out] target_point3f Target 3d point value
|
|
||||||
* @param[out] error Log error messages
|
|
||||||
*
|
|
||||||
* @return bool Transform result
|
|
||||||
*/
|
|
||||||
bool ob_calibration_2d_to_3d_undistortion(const ob_calibration_param calibration_param, const ob_point2f source_point2f, const float source_depth_pixel_value,
|
|
||||||
const ob_sensor_type source_sensor_type, const ob_sensor_type target_sensor_type, ob_point3f *target_point3f,
|
|
||||||
ob_error **error);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Transform a 3d point of a source coordinate system into a 2d pixel coordinate of the target camera.
|
* @brief Transform a 3d point of a source coordinate system into a 2d pixel coordinate of the target camera.
|
||||||
*
|
*
|
||||||
@@ -105,7 +88,7 @@ ob_frame *transformation_depth_frame_to_color_camera(ob_device *device, ob_frame
|
|||||||
* @param[in] calibration_param Device calibration param,see pipeline::getCalibrationParam
|
* @param[in] calibration_param Device calibration param,see pipeline::getCalibrationParam
|
||||||
* @param[in] sensor_type sensor type
|
* @param[in] sensor_type sensor type
|
||||||
* @param[in] data input data,needs to be allocated externally.During initialization, the external allocation size is 'data_size', for example, data_size = 1920
|
* @param[in] data input data,needs to be allocated externally.During initialization, the external allocation size is 'data_size', for example, data_size = 1920
|
||||||
* * 1080 * 2*sizeof(float) (1920 * 1080 represents the image resolution, and 2 represents two LUTs, one for x-coordinate and one for y-coordinate).
|
* * 1080 * 2 (1920 * 1080 represents the image resolution, and 2 represents two LUTs, one for x-coordinate and one for y-coordinate).
|
||||||
* @param[in] data_size input data size
|
* @param[in] data_size input data size
|
||||||
* @param[out] xy_tables output xy tables
|
* @param[out] xy_tables output xy tables
|
||||||
* @param[out] error Log error messages
|
* @param[out] error Log error messages
|
||||||
@@ -125,18 +108,6 @@ bool transformation_init_xy_tables(const ob_calibration_param calibration_param,
|
|||||||
*/
|
*/
|
||||||
void transformation_depth_to_pointcloud(ob_xy_tables *xy_tables, const void *depth_image_data, void *pointcloud_data, ob_error **error);
|
void transformation_depth_to_pointcloud(ob_xy_tables *xy_tables, const void *depth_image_data, void *pointcloud_data, ob_error **error);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Transform depth image to point cloud data
|
|
||||||
*
|
|
||||||
* @param[in] xy_tables input xy tables,see transformation_init_xy_tables
|
|
||||||
* @param[in] depth_image_data input depth image data
|
|
||||||
* @param[in] color_image_data input color image data (only RGB888 support)
|
|
||||||
* @param[out] pointcloud_data output point cloud data
|
|
||||||
* @param[out] error Log error messages
|
|
||||||
*/
|
|
||||||
void transformation_depth_to_rgbd_pointcloud(ob_xy_tables *xy_tables, const void *depth_image_data, const void *color_image_data, void *pointcloud_data,
|
|
||||||
ob_error **error);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
#include "Types.hpp"
|
#include "Types.hpp"
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
class Frame;
|
class Frame;
|
||||||
@@ -150,4 +151,172 @@ public:
|
|||||||
DecompressionFilter();
|
DecompressionFilter();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Hole filling filter
|
||||||
|
*/
|
||||||
|
class OB_EXTENSION_API HoleFillingFilter : public Filter {
|
||||||
|
public:
|
||||||
|
HoleFillingFilter();
|
||||||
|
|
||||||
|
void enable(bool enable);
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
|
|
||||||
|
void setFilterMode(OBHoleFillingMode mode);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Temporal filter
|
||||||
|
*/
|
||||||
|
class OB_EXTENSION_API TemporalFilter : public Filter {
|
||||||
|
public:
|
||||||
|
TemporalFilter();
|
||||||
|
|
||||||
|
void enable(bool enable);
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
|
|
||||||
|
OBFloatPropertyRange getDiffScaleRange();
|
||||||
|
|
||||||
|
void setDiffScale(float value);
|
||||||
|
|
||||||
|
OBFloatPropertyRange getWeightRange();
|
||||||
|
|
||||||
|
void setWeight(float value);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Spatial advanced filter
|
||||||
|
*/
|
||||||
|
class OB_EXTENSION_API SpatialAdvancedFilter : public Filter {
|
||||||
|
public:
|
||||||
|
SpatialAdvancedFilter();
|
||||||
|
|
||||||
|
void enable(bool enable);
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
|
|
||||||
|
OBFloatPropertyRange getAlphaRange();
|
||||||
|
|
||||||
|
OBUint16PropertyRange getDispDiffRange();
|
||||||
|
|
||||||
|
OBUint16PropertyRange getRadiusRange();
|
||||||
|
|
||||||
|
OBIntPropertyRange getMagnitudeRange();
|
||||||
|
|
||||||
|
OBSpatialAdvancedFilterParams getFilterParams();
|
||||||
|
|
||||||
|
void setFilterParams(OBSpatialAdvancedFilterParams params);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Depth to disparity or disparity to depth
|
||||||
|
*/
|
||||||
|
class OB_EXTENSION_API DisparityTransform : public Filter {
|
||||||
|
public:
|
||||||
|
DisparityTransform();
|
||||||
|
|
||||||
|
DisparityTransform(bool depth_to_disparity);
|
||||||
|
|
||||||
|
void enable(bool enable);
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Depth HDR merge
|
||||||
|
*/
|
||||||
|
class OB_EXTENSION_API HdrMerge : public Filter {
|
||||||
|
public:
|
||||||
|
HdrMerge();
|
||||||
|
|
||||||
|
void enable(bool enable);
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Align for depth to other or other to depth.
|
||||||
|
*/
|
||||||
|
class OB_EXTENSION_API Align : public Filter {
|
||||||
|
public:
|
||||||
|
Align(OBStreamType align_to_stream, OBFrameType align_to_frame);
|
||||||
|
|
||||||
|
void enable(bool enable);
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Creates depth Thresholding filter
|
||||||
|
* By controlling min and max options on the block
|
||||||
|
*/
|
||||||
|
class OB_EXTENSION_API ThresholdFilter : public Filter {
|
||||||
|
public:
|
||||||
|
ThresholdFilter();
|
||||||
|
|
||||||
|
void enable(bool enable);
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
|
|
||||||
|
OBIntPropertyRange getMinRange();
|
||||||
|
|
||||||
|
OBIntPropertyRange getMaxRange();
|
||||||
|
|
||||||
|
void setValueRange(uint16_t min, uint16_t max);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief
|
||||||
|
*/
|
||||||
|
class OB_EXTENSION_API SequenceIdFilter : public Filter {
|
||||||
|
public:
|
||||||
|
SequenceIdFilter();
|
||||||
|
|
||||||
|
void enable(bool enable);
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
|
|
||||||
|
void selectSequenceId(float sequence_id);
|
||||||
|
|
||||||
|
float getSelectSequenceId();
|
||||||
|
|
||||||
|
std::map<float, std::string> getSequenceIdList();
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief
|
||||||
|
*/
|
||||||
|
class OB_EXTENSION_API NoiseRemovalFilter : public Filter {
|
||||||
|
public:
|
||||||
|
NoiseRemovalFilter();
|
||||||
|
|
||||||
|
void enable(bool enable);
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
|
|
||||||
|
void setNoiseRemovalFilterParams(OBNoiseRemovalFilterParams *filterParams);
|
||||||
|
|
||||||
|
OBUint16PropertyRange getDispDiffRange();
|
||||||
|
|
||||||
|
OBUint16PropertyRange getSizeRange();
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief
|
||||||
|
*/
|
||||||
|
class OB_EXTENSION_API DecimationFilter : public Filter {
|
||||||
|
public:
|
||||||
|
DecimationFilter();
|
||||||
|
|
||||||
|
void enable(bool enable);
|
||||||
|
|
||||||
|
bool isEnabled();
|
||||||
|
|
||||||
|
void setScaleValue(uint8_t value);
|
||||||
|
|
||||||
|
OBUint8PropertyRange getScaleRange();
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace ob
|
} // namespace ob
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
struct FrameImpl;
|
struct FrameImpl;
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
class Device;
|
||||||
|
class Sensor;
|
||||||
class StreamProfile;
|
class StreamProfile;
|
||||||
class Filter;
|
class Filter;
|
||||||
class FrameHelper;
|
class FrameHelper;
|
||||||
@@ -120,6 +122,57 @@ public:
|
|||||||
*/
|
*/
|
||||||
uint64_t globalTimeStampUs();
|
uint64_t globalTimeStampUs();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the metadata of the frame.
|
||||||
|
*
|
||||||
|
* @return void* The metadata of the frame.
|
||||||
|
*/
|
||||||
|
void *metadata();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the size of the metadata of the frame.
|
||||||
|
*
|
||||||
|
* @return uint32_t The size of the metadata of the frame.
|
||||||
|
*/
|
||||||
|
uint32_t metadataSize();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Check if the frame object has metadata of a given type.
|
||||||
|
*
|
||||||
|
* @param type The metadata type. refer to @ref OBFrameMetadataType
|
||||||
|
* @return bool The result.
|
||||||
|
*/
|
||||||
|
bool hasMetadata(OBFrameMetadataType type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the metadata value
|
||||||
|
*
|
||||||
|
* @param type The metadata type. refer to @ref OBFrameMetadataType
|
||||||
|
* @return int64_t The metadata value.
|
||||||
|
*/
|
||||||
|
int64_t getMetadataValue(OBFrameMetadataType type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief get StreamProfile of the frame
|
||||||
|
*
|
||||||
|
* @return std::shared_ptr<StreamProfile> The StreamProfile of the frame, may return nullptr if the frame is not captured from a stream.
|
||||||
|
*/
|
||||||
|
std::shared_ptr<StreamProfile> getStreamProfile();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief get owner sensor of the frame
|
||||||
|
*
|
||||||
|
* @return std::shared_ptr<Sensor> The owner sensor of the frame, return nullptr if the frame is not owned by any sensor or the sensor is destroyed
|
||||||
|
*/
|
||||||
|
std::shared_ptr<Sensor> getSensor();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief get owner device of the frame
|
||||||
|
*
|
||||||
|
* @return std::shared_ptr<Device> The owner device of the frame, return nullptr if the frame is not owned by any device or the device is destroyed
|
||||||
|
*/
|
||||||
|
std::shared_ptr<Device> getDevice();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check if the runtime type of the frame object is compatible with a given type.
|
* @brief Check if the runtime type of the frame object is compatible with a given type.
|
||||||
*
|
*
|
||||||
@@ -171,20 +224,6 @@ public:
|
|||||||
*/
|
*/
|
||||||
uint32_t height();
|
uint32_t height();
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Get the metadata of the frame.
|
|
||||||
*
|
|
||||||
* @return void* The metadata of the frame.
|
|
||||||
*/
|
|
||||||
void *metadata();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Get the size of the metadata of the frame.
|
|
||||||
*
|
|
||||||
* @return uint32_t The size of the metadata of the frame.
|
|
||||||
*/
|
|
||||||
uint32_t metadataSize();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the effective number of pixels in the frame.
|
* @brief Get the effective number of pixels in the frame.
|
||||||
* @attention Only valid for Y8/Y10/Y11/Y12/Y14/Y16 format.
|
* @attention Only valid for Y8/Y10/Y11/Y12/Y14/Y16 format.
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* @brief Start the pipeline and set the frameset data callback
|
* @brief Start the pipeline and set the frameset data callback
|
||||||
*
|
*
|
||||||
* @param config The parameter configuration of the pipeline
|
* @param config The configuration of the pipeline
|
||||||
* @param callback The callback to be triggered when all frame data in the frameset arrives
|
* @param callback The callback to be triggered when all frame data in the frameset arrives
|
||||||
*/
|
*/
|
||||||
void start(std::shared_ptr<Config> config, FrameSetCallback callback);
|
void start(std::shared_ptr<Config> config, FrameSetCallback callback);
|
||||||
@@ -78,6 +78,7 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the pipeline configuration parameters
|
* @brief Get the pipeline configuration parameters
|
||||||
|
* @brief Returns the default configuration if the user has not configured it
|
||||||
*
|
*
|
||||||
* @return std::shared_ptr<Config> The configured parameters
|
* @return std::shared_ptr<Config> The configured parameters
|
||||||
*/
|
*/
|
||||||
@@ -220,6 +221,7 @@ public:
|
|||||||
void enableStream(std::shared_ptr<StreamProfile> streamProfile);
|
void enableStream(std::shared_ptr<StreamProfile> streamProfile);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @deprecated Use enableStream(std::shared_ptr<StreamProfile> streamProfile) instead
|
||||||
* @brief Enable all streams to be used in the pipeline
|
* @brief Enable all streams to be used in the pipeline
|
||||||
*/
|
*/
|
||||||
void enableAllStream();
|
void enableAllStream();
|
||||||
@@ -236,6 +238,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
void disableAllStream();
|
void disableAllStream();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the Enabled Stream Profile List
|
||||||
|
*
|
||||||
|
* @return std::shared_ptr<StreamProfileList>
|
||||||
|
*/
|
||||||
|
std::shared_ptr<StreamProfileList> getEnabledStreamProfileList() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set the alignment mode
|
* @brief Set the alignment mode
|
||||||
*
|
*
|
||||||
@@ -267,7 +276,7 @@ public:
|
|||||||
* @brief The processing strategy when the FrameSet generated by the frame aggregation function does not contain the frames of all opened streams (which
|
* @brief The processing strategy when the FrameSet generated by the frame aggregation function does not contain the frames of all opened streams (which
|
||||||
* can be caused by different frame rates of each stream, or by the loss of frames of one stream): drop directly or output to the user.
|
* can be caused by different frame rates of each stream, or by the loss of frames of one stream): drop directly or output to the user.
|
||||||
*
|
*
|
||||||
* @param mode The frame aggregation output mode to be set (default mode is @ref OB_FRAME_AGGREGATE_OUTPUT_ANY_SITUATION)
|
* @param mode The frame aggregation output mode to be set (default mode is @ref OB_FRAME_AGGREGATE_OUTPUT_FULL_FRAME_REQUIRE)
|
||||||
*/
|
*/
|
||||||
void setFrameAggregateOutputMode(OBFrameAggregateOutputMode mode);
|
void setFrameAggregateOutputMode(OBFrameAggregateOutputMode mode);
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
OBStreamType type() const;
|
OBStreamType type() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the extrinsic parameters from current stream profile to the given target stream profile
|
||||||
|
*
|
||||||
|
* @return OBExtrinsic Return the extrinsic parameters.
|
||||||
|
*/
|
||||||
|
OBExtrinsic getExtrinsicTo(std::shared_ptr<StreamProfile> target);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check if frame object is compatible with the given type
|
* @brief Check if frame object is compatible with the given type
|
||||||
*
|
*
|
||||||
@@ -100,6 +107,21 @@ public:
|
|||||||
* @return uint32_t Return the height of the stream.
|
* @return uint32_t Return the height of the stream.
|
||||||
*/
|
*/
|
||||||
uint32_t height() const;
|
uint32_t height() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the intrinsic parameters of the stream.
|
||||||
|
*
|
||||||
|
* @return OBCameraIntrinsic Return the intrinsic parameters.
|
||||||
|
*/
|
||||||
|
OBCameraIntrinsic getIntrinsic();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the distortion parameters of the stream.
|
||||||
|
* @brief Brown distortion model
|
||||||
|
*
|
||||||
|
* @return OBCameraDistortion Return the distortion parameters.
|
||||||
|
*/
|
||||||
|
OBCameraDistortion getDistortion();
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -126,6 +148,13 @@ public:
|
|||||||
* @return OBAccelFullScaleRange Return the sampling frequency.
|
* @return OBAccelFullScaleRange Return the sampling frequency.
|
||||||
*/
|
*/
|
||||||
OBAccelSampleRate sampleRate() const;
|
OBAccelSampleRate sampleRate() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief get the intrinsic parameters of the stream.
|
||||||
|
*
|
||||||
|
* @return OBAccelIntrinsic Return the intrinsic parameters.
|
||||||
|
*/
|
||||||
|
OBAccelIntrinsic getIntrinsic();
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -151,6 +180,13 @@ public:
|
|||||||
* @return OBAccelFullScaleRange Return the sampling frequency.
|
* @return OBAccelFullScaleRange Return the sampling frequency.
|
||||||
*/
|
*/
|
||||||
OBGyroSampleRate sampleRate() const;
|
OBGyroSampleRate sampleRate() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief get the intrinsic parameters of the stream.
|
||||||
|
*
|
||||||
|
* @return OBGyroIntrinsic Return the intrinsic parameters.
|
||||||
|
*/
|
||||||
|
OBGyroIntrinsic getIntrinsic();
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T> bool StreamProfile::is() {
|
template <typename T> bool StreamProfile::is() {
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ public:
|
|||||||
* @param calibrationParam Device calibration param,see pipeline::getCalibrationParam
|
* @param calibrationParam Device calibration param,see pipeline::getCalibrationParam
|
||||||
* @param sensorType sensor type
|
* @param sensorType sensor type
|
||||||
* @param data input data,needs to be allocated externally.During initialization, the external allocation size is 'dataSize', for example, dataSize = 1920 *
|
* @param data input data,needs to be allocated externally.During initialization, the external allocation size is 'dataSize', for example, dataSize = 1920 *
|
||||||
* 1080 * 2*sizeof(float) (1920 * 1080 represents the image resolution, and 2 represents two LUTs, one for x-coordinate and one for y-coordinate).
|
* 1080 * 2 (1920 * 1080 represents the image resolution, and 2 represents two LUTs, one for x-coordinate and one for y-coordinate).
|
||||||
* @param dataSize input data size
|
* @param dataSize input data size
|
||||||
* @param xyTables output xy tables
|
* @param xyTables output xy tables
|
||||||
*
|
*
|
||||||
@@ -123,16 +123,5 @@ public:
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static void transformationDepthToPointCloud(OBXYTables *xyTables, const void *depthImageData, void *pointCloudData);
|
static void transformationDepthToPointCloud(OBXYTables *xyTables, const void *depthImageData, void *pointCloudData);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Transform depth image to RGBD point cloud data
|
|
||||||
*
|
|
||||||
* @param xyTables input xy tables,see CoordinateTransformHelper::transformationInitXYTables
|
|
||||||
* @param depthImageData input depth image data
|
|
||||||
* @param colorImageData input color image data (only RGB888 support)
|
|
||||||
* @param pointCloudData output RGBD point cloud data
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
static void transformationDepthToRGBDPointCloud(OBXYTables *xyTables, const void *depthImageData, const void *colorImageData, void *pointCloudData);
|
|
||||||
};
|
};
|
||||||
} // namespace ob
|
} // namespace ob
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
libOrbbecSDK.so.1.9.4
|
libOrbbecSDK.so.1.9.2
|
||||||
BIN
Binary file not shown.
Reference in New Issue
Block a user