3 #include "opencv2/imgproc.hpp"
4 #include <opencv2/highgui.hpp>
24 int main(
int argc,
char **argv)
35 cv::Mat canvas(500, 500, CV_8UC3, cv::Scalar(50, 50, 50));
36 canvas_center = cv::Point2d(canvas.rows / 2, canvas.cols / 2);
38 cv::Scalar robot_color(0, 0, 255);
41 const double scaling = 1.0;
59 cv::Point2d pRobot =
worldToCanvas(robot_points[0].first, robot_points[0].second);
62 for(
unsigned int i = 0; i < robot_head_points.
size(); ++i)
64 unsigned int j = (i + 1) % robot_head_points.
size();
65 cv::Point2d p1 =
worldToCanvas(robot_head_points[i].first, robot_head_points[i].second);
66 cv::Point2d p2 =
worldToCanvas(robot_head_points[j].first, robot_head_points[j].second);
67 cv::line(canvas, p1, p2, robot_color, 2);
69 for(
unsigned int i = 0; i < eye_points.
size(); ++i)
71 cv::Point2d pEye =
worldToCanvas(eye_points[i].first, eye_points[i].second);
72 cv::circle(canvas, pEye, scaling*4, robot_color, 2);
74 for(
unsigned int i = 0; i < eye_pupil_points.
size(); ++i)
76 cv::Point2d pEyePupil =
worldToCanvas(eye_pupil_points[i].first, eye_pupil_points[i].second);
77 cv::circle(canvas, pEyePupil, scaling*1.5, robot_color, 2);
84 cv::circle(canvas, pLRF, scaling*2, robot_color, 2);
91 for(
unsigned int i = 0; i < scan.
ranges.
size(); ++i)
93 double x = cos(a) * scan.
ranges[i];
94 double y = sin(a) * scan.
ranges[i];
97 if (p.x >= 0 && p.y >= 0 && p.x < canvas.cols && p.y < canvas.rows)
98 canvas.at<cv::Vec3b>(p) = cv::Vec3b(0, 255, 0);
103 cv::imshow(
"Laser Vizualization", canvas);