Monado OpenXR Runtime
|
Calibration code. More...
#include "util/u_sink.h"
#include "util/u_misc.h"
#include "util/u_debug.h"
#include "util/u_frame.h"
#include "util/u_format.h"
#include "util/u_logging.h"
#include "tracking/t_tracking.h"
#include "tracking/t_calibration_opencv.hpp"
#include <opencv2/opencv.hpp>
#include <sys/stat.h>
#include <utility>
Data Structures | |
struct | xrt::auxiliary::tracking::ViewState |
Current state for each view, one view for mono cameras, two for stereo. More... | |
class | xrt::auxiliary::tracking::Calibration |
Main class for doing calibration. More... | |
Macros | |
#define | P(...) snprintf(c.text, sizeof(c.text), __VA_ARGS__) |
Typedefs | |
typedef std::vector< cv::Point3f > | xrt::auxiliary::tracking::ModelF32 |
Model of the thing we are measuring to calibrate, 32 bit. More... | |
typedef std::vector< cv::Point3d > | xrt::auxiliary::tracking::ModelF64 |
Model of the thing we are measuring to calibrate, 64 bit. More... | |
typedef std::vector< cv::Point2f > | xrt::auxiliary::tracking::MeasurementF32 |
A measurement of the model as viewed on the camera. More... | |
typedef std::vector< cv::Point2d > | xrt::auxiliary::tracking::MeasurementF64 |
In doubles, because OpenCV can't agree on a single type to use. More... | |
typedef std::vector< ModelF32 > | xrt::auxiliary::tracking::ArrayOfModelF32s |
For each MeasurementF32 we take we also save the ModelF32. More... | |
typedef std::vector< ModelF64 > | xrt::auxiliary::tracking::ArrayOfModelF64s |
For each MeasurementF64 we take we also save the ModelF64. More... | |
typedef std::vector< MeasurementF32 > | xrt::auxiliary::tracking::ArrayOfMeasurementF32s |
A array of MeasurementF32. More... | |
typedef std::vector< MeasurementF64 > | xrt::auxiliary::tracking::ArrayOfMeasurementF64s |
A array of MeasurementF64. More... | |
typedef std::vector< cv::Rect > | xrt::auxiliary::tracking::ArrayOfRects |
A array of bounding rects. More... | |
Functions | |
static void | xrt::auxiliary::tracking::to_stdout (const char *name, const cv::Mat &mat) |
static void | xrt::auxiliary::tracking::refresh_gui_frame (class Calibration &c, int rows, int cols) |
static void | xrt::auxiliary::tracking::send_rgb_frame (class Calibration &c) |
static void | xrt::auxiliary::tracking::ensure_buffers_are_allocated (class Calibration &c, int rows, int cols) |
static void | xrt::auxiliary::tracking::print_txt (cv::Mat &rgb, const char *text, double fontScale) |
static void | xrt::auxiliary::tracking::make_gui_str (class Calibration &c) |
static void | xrt::auxiliary::tracking::draw_rect (cv::Mat &rgb, const cv::Rect &rect, const cv::Scalar &colour) |
Simple helper to draw a bounding rect. More... | |
static void | xrt::auxiliary::tracking::do_view_coverage (class Calibration &c, struct ViewState &view, cv::Mat &gray, cv::Mat &rgb, bool found) |
static bool | xrt::auxiliary::tracking::do_view_chess (class Calibration &c, struct ViewState &view, cv::Mat &gray, cv::Mat &rgb) |
static bool | xrt::auxiliary::tracking::do_view_circles (class Calibration &c, struct ViewState &view, cv::Mat &gray, cv::Mat &rgb) |
static bool | xrt::auxiliary::tracking::do_view (class Calibration &c, struct ViewState &view, cv::Mat &gray, cv::Mat &rgb) |
static void | xrt::auxiliary::tracking::remap_view (class Calibration &c, struct ViewState &view, cv::Mat &rgb) |
static void | xrt::auxiliary::tracking::build_board_position (class Calibration &c) |
static void | xrt::auxiliary::tracking::push_model (Calibration &c) |
static void | xrt::auxiliary::tracking::push_measurement (ViewState &view) |
static bool | xrt::auxiliary::tracking::has_measurement_moved (MeasurementF64 &last, MeasurementF64 ¤t) |
Returns true if any one of the measurement points have moved. More... | |
static bool | xrt::auxiliary::tracking::moved_state_check (struct ViewState &view) |
static XRT_NO_INLINE void | xrt::auxiliary::tracking::process_stereo_samples (class Calibration &c, int cols, int rows) |
static void | xrt::auxiliary::tracking::process_view_samples (class Calibration &c, struct ViewState &view, int cols, int rows) |
static void | xrt::auxiliary::tracking::update_public_status (class Calibration &c, bool found) |
static void | xrt::auxiliary::tracking::do_capture_logic_mono (class Calibration &c, struct ViewState &view, bool found, cv::Mat &gray, cv::Mat &rgb) |
Logic for capturing a frame. More... | |
static void | xrt::auxiliary::tracking::do_capture_logic_stereo (class Calibration &c, cv::Mat &gray, cv::Mat &rgb, bool l_found, struct ViewState &l_view, cv::Mat &l_gray, cv::Mat &l_rgb, bool r_found, struct ViewState &r_view, cv::Mat &r_gray, cv::Mat &r_rgb) |
Capture logic for stereo frames. More... | |
static void | xrt::auxiliary::tracking::make_calibration_frame_mono (class Calibration &c) |
Make a mono frame. More... | |
static void | xrt::auxiliary::tracking::make_calibration_frame_sbs (class Calibration &c) |
Make a stereo frame side by side. More... | |
static void | xrt::auxiliary::tracking::make_calibration_frame (class Calibration &c, struct xrt_frame *xf) |
static void | xrt::auxiliary::tracking::make_remap_view (class Calibration &c, struct xrt_frame *xf) |
static XRT_NO_INLINE void | xrt::auxiliary::tracking::process_frame_l8 (class Calibration &c, struct xrt_frame *xf) |
static XRT_NO_INLINE void | xrt::auxiliary::tracking::process_frame_yuv (class Calibration &c, struct xrt_frame *xf) |
static XRT_NO_INLINE void | xrt::auxiliary::tracking::process_frame_yuyv (class Calibration &c, struct xrt_frame *xf) |
static XRT_NO_INLINE void | xrt::auxiliary::tracking::process_frame_uyvy (class Calibration &c, struct xrt_frame *xf) |
static XRT_NO_INLINE void | xrt::auxiliary::tracking::process_frame_rgb (class Calibration &c, struct xrt_frame *xf) |
static XRT_NO_INLINE void | xrt::auxiliary::tracking::process_load_image (class Calibration &c, struct xrt_frame *xf) |
void | xrt::auxiliary::tracking::t_calibration_frame (struct xrt_frame_sink *xsink, struct xrt_frame *xf) |
int | xrt::auxiliary::tracking::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) |
static std::vector< cv::Vec2f > | xrt::auxiliary::tracking::generateInputCoordsAndReserveOutputCoords (const cv::Size &size, std::vector< cv::Vec2f > &outputCoords) |
Helper for NormalizedCoordsCache constructors. More... | |
static void | xrt::auxiliary::tracking::populateCacheMats (const cv::Size &size, const std::vector< cv::Vec2f > &inputCoords, const std::vector< cv::Vec2f > &outputCoords, cv::Mat_< float > &cacheX, cv::Mat_< float > &cacheY) |
Helper for NormalizedCoordsCache constructors. More... | |
Calibration code.
typedef std::vector<MeasurementF32> xrt::auxiliary::tracking::ArrayOfMeasurementF32s |
A array of MeasurementF32.
typedef std::vector<MeasurementF64> xrt::auxiliary::tracking::ArrayOfMeasurementF64s |
A array of MeasurementF64.
typedef std::vector<ModelF32> xrt::auxiliary::tracking::ArrayOfModelF32s |
For each MeasurementF32 we take we also save the ModelF32.
typedef std::vector<ModelF64> xrt::auxiliary::tracking::ArrayOfModelF64s |
For each MeasurementF64 we take we also save the ModelF64.
typedef std::vector<cv::Rect> xrt::auxiliary::tracking::ArrayOfRects |
A array of bounding rects.
typedef std::vector<cv::Point2f> xrt::auxiliary::tracking::MeasurementF32 |
A measurement of the model as viewed on the camera.
typedef std::vector<cv::Point2d> xrt::auxiliary::tracking::MeasurementF64 |
In doubles, because OpenCV can't agree on a single type to use.
typedef std::vector<cv::Point3f> xrt::auxiliary::tracking::ModelF32 |
Model of the thing we are measuring to calibrate, 32 bit.
typedef std::vector<cv::Point3d> xrt::auxiliary::tracking::ModelF64 |
Model of the thing we are measuring to calibrate, 64 bit.
|
static |
Logic for capturing a frame.
References xrt::auxiliary::tracking::do_capture_logic_mono(), and xrt::auxiliary::tracking::Calibration::num_collect_total.
Referenced by xrt::auxiliary::tracking::do_capture_logic_mono().
|
static |
Capture logic for stereo frames.
References xrt::auxiliary::tracking::do_capture_logic_stereo(), and xrt::auxiliary::tracking::Calibration::num_collect_total.
Referenced by xrt::auxiliary::tracking::do_capture_logic_stereo().
|
static |
Simple helper to draw a bounding rect.
References xrt::auxiliary::tracking::draw_rect().
Referenced by xrt::auxiliary::tracking::draw_rect().
|
inlinestatic |
Helper for NormalizedCoordsCache constructors.
References xrt::auxiliary::tracking::generateInputCoordsAndReserveOutputCoords().
Referenced by xrt::auxiliary::tracking::generateInputCoordsAndReserveOutputCoords(), and xrt::auxiliary::tracking::NormalizedCoordsCache::NormalizedCoordsCache().
|
static |
Returns true if any one of the measurement points have moved.
References xrt::auxiliary::tracking::has_measurement_moved().
Referenced by xrt::auxiliary::tracking::has_measurement_moved().
|
static |
Make a mono frame.
References xrt::auxiliary::tracking::make_calibration_frame_mono().
Referenced by xrt::auxiliary::tracking::make_calibration_frame_mono().
|
static |
Make a stereo frame side by side.
References xrt::auxiliary::tracking::make_calibration_frame_sbs().
Referenced by xrt::auxiliary::tracking::make_calibration_frame_sbs().
|
inlinestatic |
Helper for NormalizedCoordsCache constructors.
References xrt::auxiliary::tracking::populateCacheMats().
Referenced by xrt::auxiliary::tracking::NormalizedCoordsCache::NormalizedCoordsCache(), and xrt::auxiliary::tracking::populateCacheMats().