83 #define XRT_DISTORTION_MAX_DIM (5) 120 double camera_translation[3];
122 double camera_rotation[3][3];
125 double camera_essential[3][3];
127 double camera_fundamental[3][3];
157 if (old_dst == src) {
168 if (xrt_reference_dec(&old_dst->
reference)) {
204 uint8_t v[256][256][256][3];
220 t_convert_in_place_y8u8v8_to_r8g8b8(uint32_t width,
226 t_convert_in_place_y8u8v8_to_h8s8v8(uint32_t width,
232 t_convert_in_place_h8s8v8_to_r8g8b8(uint32_t width,
244 #define T_HSV_SIZE 32 245 #define T_HSV_STEP (256 / T_HSV_SIZE) 247 #define T_HSV_DEFAULT_PARAMS() \ 250 {165, 30, 160, 100}, \ 251 {135, 30, 160, 100}, \ 252 {95, 30, 160, 100}, \ 280 uint8_t v[256][256][256];
285 uint8_t v[T_HSV_SIZE][T_HSV_SIZE][T_HSV_SIZE];
300 static inline uint8_t
306 return t->v[y / T_HSV_STEP][u / T_HSV_STEP][v / T_HSV_STEP];
355 T_BOARD_ASYMMETRIC_CIRCLES,
389 bool subpixel_enable;
397 float distance_meters;
404 float diagonal_distance_meters;
405 } asymmetric_circles;
413 int num_cooldown_frames;
415 int num_collect_total;
416 int num_collect_restart;
442 p->checkers.cols = 9;
443 p->checkers.rows = 7;
444 p->checkers.size_meters = 0.025f;
445 p->checkers.subpixel_enable =
true;
446 p->checkers.subpixel_size = 5;
451 p->circles.distance_meters = 0.025f;
454 p->asymmetric_circles.cols = 5;
455 p->asymmetric_circles.rows = 17;
456 p->asymmetric_circles.diagonal_distance_meters = 0.02f;
459 p->load.enabled =
false;
460 p->load.num_images = 20;
463 p->num_cooldown_frames = 20;
465 p->num_collect_total = 20;
466 p->num_collect_restart = 1;
470 p->save_images =
true;
struct t_stereo_camera_calibration * stereo_data
Stereo calibration data that was produced.
Definition: t_tracking.h:371
double distortion[XRT_DISTORTION_MAX_DIM]
Rectilinear distortion coefficients: k1, k2, p1, p2[, k3[, k4, k5, k6[, s1, s2, s3, s4]].
Definition: t_tracking.h:99
t_board_pattern
Board pattern type.
Definition: t_tracking.h:351
bool stereo_sbs
Is the camera a stereo sbs camera, mostly for image loading.
Definition: t_tracking.h:379
Essential calibration data for a single camera, or single lens/sensor of a stereo camera...
Definition: t_tracking.h:89
bool mirror_rgb_image
Should we mirror the RGB image?
Definition: t_tracking.h:423
int num_collected
Number of frames collected.
Definition: t_tracking.h:365
Definition: t_tracking.h:374
bool t_file_save_raw_data_hack(struct t_stereo_camera_calibration *data)
Save raw calibration data to file, hack until prober has storage for such things. ...
Definition: t_file.cpp:346
Definition: t_tracking.h:267
A object that is sent frames.
Definition: xrt_frame.h:51
Definition: t_tracking.h:278
double distortion_fisheye[4]
Fisheye camera distortion coefficients.
Definition: t_tracking.h:102
Definition: t_tracking.h:257
Stereo camera calibration data to be given to trackers.
Definition: t_tracking.h:111
Image size.
Definition: xrt_defines.h:216
void t_stereo_camera_calibration_destroy(struct t_stereo_camera_calibration *c)
Only to be called by t_stereo_camera_calibration_reference.
Definition: t_data_utils.c:25
#define XRT_DISTORTION_MAX_DIM
Maximum size of rectilinear distortion coefficient array.
Definition: t_tracking.h:83
bool use_fisheye
Should we use fisheye version of the calibration functions.
Definition: t_tracking.h:377
Definition: t_tracking.h:283
bool found
Was the target found this frame?
Definition: t_tracking.h:363
double intrinsics[3][3]
Camera intrinsics matrix.
Definition: t_tracking.h:95
Object used to track all sinks and frame producers in a graph.
Definition: xrt_frame.h:87
Definition: t_tracking.h:202
enum t_board_pattern pattern
What type of pattern are we using for calibration.
Definition: t_tracking.h:381
Definition: t_tracking.h:358
bool use_fisheye
Is the camera fisheye?
Definition: t_tracking.h:105
int t_calibration_stereo_create(struct xrt_frame_context *xfctx, const struct t_calibration_params *params, struct t_calibration_status *status, struct xrt_frame_sink *gui, struct xrt_frame_sink **out_sink)
Create the camera calibration frame sink.
Definition: t_calibration.cpp:1222
A 3 element colour with floating point channels.
Definition: xrt_defines.h:191
bool t_stereo_camera_calibration_load_v1_hack(struct t_stereo_camera_calibration **out_data)
Load a stereo calibration struct from a hardcoded place.
Definition: t_file.cpp:322
A base class for reference counted objects.
Definition: xrt_defines.h:24
A tracked PSVR headset.
Definition: xrt_tracking.h:148
bool t_stereo_camera_calibration_load_v1(FILE *calib_file, struct t_stereo_camera_calibration **out_data)
Load stereo calibration data from a given file.
Definition: t_file.cpp:190
A single tracked PS Move controller, camera and ball are not synced.
Definition: xrt_tracking.h:105
int cooldown
Number of moving frames before another capture.
Definition: t_tracking.h:367
int waits_remaining
Number of non-moving frames before capture.
Definition: t_tracking.h:369
void t_stereo_camera_calibration_alloc(struct t_stereo_camera_calibration **calib)
Allocates a new stereo calibration data, unreferences the old calib.
Definition: t_data_utils.c:17
struct xrt_size image_size_pixels
Source image size.
Definition: t_tracking.h:92
bool finished
Is calibration finished?
Definition: t_tracking.h:361
struct xrt_reference reference
Ref counting.
Definition: t_tracking.h:114