Add code to rectify frames for stereo depth images

Signed-off-by: Jacki <jacki@thejackimonster.de>
This commit is contained in:
Jacki 2025-06-06 04:22:05 +02:00
parent 262df2523c
commit 682daf4385
No known key found for this signature in database
GPG key ID: B404184796354C5E
3 changed files with 160 additions and 64 deletions

View file

@ -124,6 +124,10 @@ struct device_imu_euler_t {
float yaw;
};
struct device_imu_mat3x3_t {
float m [9];
};
struct device_imu_size_t {
uint16_t width;
uint16_t height;
@ -144,6 +148,7 @@ typedef struct device_imu_vec2_t device_imu_vec2_type;
typedef struct device_imu_vec3_t device_imu_vec3_type;
typedef struct device_imu_quat_t device_imu_quat_type;
typedef struct device_imu_euler_t device_imu_euler_type;
typedef struct device_imu_mat3x3_t device_imu_mat3x3_type;
typedef struct device_imu_size_t device_imu_size_type;
typedef void (*device_imu_event_callback)(
@ -203,6 +208,10 @@ uint32_t device_imu_camera_get_num_of_sensors(const device_imu_camera_type *came
const device_imu_camera_sensor_type* device_imu_camera_get_sensor(const device_imu_camera_type *camera, uint32_t index);
device_imu_mat3x3_type device_imu_sensor_get_rotation(const device_imu_camera_sensor_type *sensor);
device_imu_vec3_type device_imu_sensor_get_position(const device_imu_camera_sensor_type *sensor);
device_imu_size_type device_imu_sensor_get_resolution(const device_imu_camera_sensor_type *sensor);
device_imu_vec2_type device_imu_sensor_get_cc(const device_imu_camera_sensor_type *sensor);

View file

@ -1152,6 +1152,28 @@ const device_imu_camera_sensor_type* device_imu_camera_get_sensor(const device_i
return &(camera->sensors[index]);
}
device_imu_mat3x3_type device_imu_sensor_get_rotation(const device_imu_camera_sensor_type *sensor) {
device_imu_mat3x3_type rotation;
rotation.m[0] = sensor->cameraMisalignment.array[0][0];
rotation.m[1] = sensor->cameraMisalignment.array[0][1];
rotation.m[2] = sensor->cameraMisalignment.array[0][2];
rotation.m[3] = sensor->cameraMisalignment.array[1][0];
rotation.m[4] = sensor->cameraMisalignment.array[1][1];
rotation.m[5] = sensor->cameraMisalignment.array[1][2];
rotation.m[6] = sensor->cameraMisalignment.array[2][0];
rotation.m[7] = sensor->cameraMisalignment.array[2][1];
rotation.m[8] = sensor->cameraMisalignment.array[2][2];
return rotation;
}
device_imu_vec3_type device_imu_sensor_get_position(const device_imu_camera_sensor_type *sensor) {
device_imu_vec3_type position;
position.x = sensor->cameraOffset.axis.x;
position.y = sensor->cameraOffset.axis.y;
position.z = sensor->cameraOffset.axis.z;
return position;
}
device_imu_size_type device_imu_sensor_get_resolution(const device_imu_camera_sensor_type *sensor) {
device_imu_size_type resolution;
resolution.width = sensor->resolution[0];