1 #include "../lib/common.h" 2 #include "../lib/args.h" 3 #include "../lib/opencv.h" 4 #include "../lib/intrinsics.h" 5 #include "../lib/misc.h" 6 #include "../lib/obj_img_correspondence.h" 7 #include "../lib/viewer.h" 17 int main(
int argc,
const char* argv[]) {
18 get_args(argc, argv,
"cols rows square_width ir_intr.json");
26 viewer view(512+512, 424+70);
28 auto& max_ir = view.
add_int_slider(
"ir max", 0xffff, 0x0000, 0xffff);
33 std::cout <<
"running viewer... (esc to end)" << std::endl;
40 cv::Mat_<uchar> ir = grab.
get_ir_frame(min_ir.value(), max_ir.value(),
true);
44 real avg_measured_depth = NAN, avg_calculated_depth = NAN;
45 real calculated_parallel_depth = NAN, parallel_measure_x = NAN, parallel_measure_y = NAN;
47 std::vector<checkerboard_pixel_depth_sample> pixel_depths;
48 if(ir_chk && granularity.value() > 0) {
52 int count = pixel_depths.size();
54 avg_measured_depth = 0.0;
55 avg_calculated_depth = 0.0;
56 for(
const auto& samp : pixel_depths) {
57 avg_calculated_depth += samp.calculated_depth;
58 avg_measured_depth += samp.measured_depth;
60 avg_calculated_depth /= count;
61 avg_measured_depth /= count;
64 parallel_measure_x = parallel_measures[0];
65 parallel_measure_y = parallel_measures[1];
85 running = view.
show();
88 std::cout <<
"done" << std::endl;
cv::Mat_< uchar > get_ir_frame(float min_ir=0, float max_ir=0xffff, bool undistorted=false)
void calculate_checkerboard_pixel_depths(const intrinsics &intr, const checkerboard_extrinsics &ext, std::vector< checkerboard_pixel_depth_sample > &inout_samples)
static cv::Mat_< uchar > visualize_depth(const cv::Mat &, float min_d, float max_d)
void draw(const cv::Mat_< cv::Vec3b > &, real blend=1.0)
checkerboard_extrinsics estimate_checkerboard_extrinsics(const checkerboard &chk, const intrinsics &intr)
cv::Mat_< cv::Vec3b > visualize_checkerboard(const cv::Mat_< cv::Vec3b > &img, const checkerboard &chk, const checkerboard_visualization_parameters ¶m)
cv::Mat_< float > get_depth_frame(bool undistorted=false)
vec2 checkerboard_parallel_measures(const checkerboard &chk)
real calculate_parallel_checkerboard_depth(const checkerboard &chk, const intrinsics &intr)
intrinsics intrinsics_arg()
cv::Mat_< cv::Vec3b > visualize_checkerboard_pixel_samples(const cv::Mat_< cv::Vec3b > &img, const std::vector< checkerboard_pixel_depth_sample > &pixels, int rad)
void draw_2d_arrow_indicator(cv::Rect rect, real value_x, real value_y, real max_value)
std::string to_string(const T &)
void draw_text(cv::Rect rect, const std::string &text, text_alignment=left)
int_slider & add_int_slider(const std::string &caption, int default_val, int min_val, int max_val, int step=1)
checkerboard detect_ir_checkerboard(cv::Mat_< uchar > &img, int cols, int rows, real square_width)
void clear(int width, int height)
std::vector< checkerboard_pixel_depth_sample > checkerboard_pixel_depth_samples(const checkerboard &chk, const cv::Mat_< float > &depth_image, int granularity)
int main(int argc, const char *argv[])
void get_args(int argc, const char *argv[], const std::string &usage)