void display_points(const Configuration &cfg, const cv::Mat_<double> &projection, const Points3d &points) { cv::Mat_<cv::Vec<uint8_t, 3> > displayed_image = cv::Mat_<cv::Vec<uint8_t, 3> >::zeros(cfg.height, cfg.width); for (size_t i = 0; i < points.size(); i++) { cv::Mat_<double> input_x(4,1); input_x(0,0) = points[i].x; input_x(1,0) = points[i].y; input_x(2,0) = points[i].z; input_x(3,0) = 1; cv::Mat_<double> out_x = projection * input_x; cv::circle(displayed_image, cv::Point_<double>(out_x(0,0), out_x(1,0)), cfg.circle_radius, cfg.circle_colour, cfg.circle_thickness, cfg.circle_linetype, cfg.circle_shift); } cv::imshow(cfg.window_title, displayed_image); }
static void tr_dv(char **args) { if (args[1]) out_x(args[1]); }