MCPcopy Create free account
hub / github.com/Smorodov/Multitarget-tracker / DrawTracksOnMap

Method DrawTracksOnMap

example/CarsCounting.h:153–197  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

151
152 ///
153 cv::Mat DrawTracksOnMap(const std::vector<TrackingObject>& tracks)
154 {
155 if (m_map.empty())
156 return cv::Mat();
157
158 cv::Mat map = m_map.clone();
159
160#if 1 // Debug output
161 // Draw bindings points
162 for (size_t i = 0; i < m_geoPoints.size(); ++i)
163 {
164 cv::Point_<T> gp1(m_geoPoints[i % m_geoPoints.size()]);
165 cv::Point p1(m_p2mParams.Geo2Pix(gp1));
166
167 cv::Point_<T> gp2(m_geoPoints[(i + 1) % m_geoPoints.size()]);
168 cv::Point p2(m_p2mParams.Geo2Pix(gp2));
169
170 cv::line(map, p1, p2, cv::Scalar(255, 255, 255), 2, cv::LINE_AA);
171
172 //std::cout << p1 << " - " << p2 << std::endl;
173
174 std::stringstream label;
175 label << std::fixed << std::setw(5) << std::setprecision(5) << "[" << m_geoPoints[i].x << ", " << m_geoPoints[i].y << "]";
176 int baseLine = 0;
177 double fontScale = (map.cols < 1000 && map.rows < 1000) ? 0.5 : 1.;
178 cv::Size labelSize = cv::getTextSize(label.str(), cv::FONT_HERSHEY_TRIPLEX, fontScale, 1, &baseLine);
179 cv::putText(map, label.str(), p1, cv::FONT_HERSHEY_TRIPLEX, fontScale, cv::Scalar(255, 255, 255));
180 }
181#endif
182
183 // Draw tracks
184 for (const auto& track : tracks)
185 {
186 if (track.m_lastRobust)
187 {
188 auto geoCenter = Pix2Geo(track.m_rrect.center);
189 auto center = m_p2mParams.Geo2Pix(geoCenter);
190 //std::cout << "Convert: " << track.m_rrect.center << " -> " << geoCenter << " -> " << center << std::endl;
191 if (center.x > 0 && center.x < map.cols && center.y > 0 && center.y < map.rows)
192 cv::ellipse(map, center, cv::Size(5, 5), 0, 0, 360, cv::Scalar(255, 0, 255), cv::FILLED, 8);
193 }
194 }
195
196 return map;
197 }
198
199private:
200 std::vector<cv::Point> m_framePoints;

Callers 1

DrawDataMethod · 0.80

Calls 4

cloneMethod · 0.80
emptyMethod · 0.45
sizeMethod · 0.45
Geo2PixMethod · 0.45

Tested by

no test coverage detected