5 #include <opencv2/opencv.hpp>
7 #include <vision_module/Tools/Parameters.hpp>
8 #include <vision_module/Tools/General.hpp>
9 #include <vision_module/Projections/CameraProjections.hpp>
10 #include <vision_module/SoccerObjects/IDetector.hpp>
11 #include <vision_module/Tools/SortFuntions.hpp>
23 double getConfidence()
25 boundry_n(confidence, 0, 1);
29 bool decayConfidence()
31 confidence *= params.obstacle->decayConfidence();
32 return confidence > 0.1;
35 ObstacleC(Point2d position,
double confidence = 1.0,
int id=0) :
36 confidence(confidence), Position(position),id(id)
41 bool update(Point2d _pos,
double _conf)
43 if (GetDistance(_pos, Position) <= params.obstacle->maxPossibleJump())
45 boundry_n(_conf, 0, 1);
46 lowPass(_pos, Position, _conf * params.obstacle->lowPassCoef());
69 bool GetObstacleContours(Mat &obstacleMask, vector<cv::Point2f> &resInReal,
72 const int minArea = params.obstacle->minArea();
73 vector<vector<cv::Point> > obstContours;
75 cv::findContours(obstacleMask, obstContours, CV_RETR_EXTERNAL,
76 CV_CHAIN_APPROX_NONE);
78 resInReal.reserve(obstContours.size());
80 for (
size_t i = 0; i < obstContours.size(); i++)
82 cv::approxPolyDP(obstContours[i], obstContours[i],
83 cv::arcLength(obstContours[i],
true) * 0.003,
true);
84 double area = contourArea(obstContours[i]);
87 cv::Rect rec = boundingRect(obstContours[i]);
88 cv::Point btnPoint(rec.x + rec.width / 2, rec.y + rec.height);
90 cv::Point2f btnInReal;
91 if (!projection.GetOnRealCordinate_single(btnPoint, btnInReal))
93 ROS_ERROR(
"Error in programming!");
95 if (SHOWGUI && params.obstacle->showResult())
97 drawContours(guiImg, obstContours, i, Scalar(240, 250, 250), 2,
100 double distanceToRobot = GetDistance(btnInReal);
101 if (distanceToRobot >= params.obstacle->minDistance()
102 && distanceToRobot <= params.obstacle->maxDistance())
104 resInReal.push_back(btnInReal);
108 return resInReal.size() > 0;
For pixel projections.
Definition: CameraProjections.hpp:50
For detecting other robots with black feet.
Definition: ObstacleDetector.hpp:65