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);
}
Example #2
0
static void tr_dv(char **args)
{
	if (args[1])
		out_x(args[1]);
}