summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2015-07-24 07:25:27 +0200
committerStanislaw Halik <sthalik@misaki.pl>2015-07-24 07:25:27 +0200
commitd1485873f18d04d8c2aad28d67c51c25a6653d04 (patch)
tree3a0cf612488f72302f3887f801d3c9cf96b9f512
parentb0f6b7de714e20a2f36d56a01c99522722218657 (diff)
Revert "pt: change point internal representation"opentrack-2.3-rc15p1
This reverts commit e89c2b1034692eb1365715a089b7035e6d837719. Issue: #199
-rw-r--r--ftnoir_tracker_pt/ftnoir_tracker_pt.cpp11
-rw-r--r--ftnoir_tracker_pt/point_extractor.cpp3
2 files changed, 8 insertions, 6 deletions
diff --git a/ftnoir_tracker_pt/ftnoir_tracker_pt.cpp b/ftnoir_tracker_pt/ftnoir_tracker_pt.cpp
index d166ad01..07370f84 100644
--- a/ftnoir_tracker_pt/ftnoir_tracker_pt.cpp
+++ b/ftnoir_tracker_pt/ftnoir_tracker_pt.cpp
@@ -59,7 +59,7 @@ float Tracker_PT::get_focal_length()
static constexpr double pi = 3.1415926f;
const double diag = sqrt(w * w + h * h)/w, diag_fov = static_cast<int>(s.fov) * pi / 180.;
const double fov = 2.*atan(tan(diag_fov/2.0)/sqrt(1. + diag*diag));
- return w*.5 / tan(.5 * fov);
+ return .5 / tan(.5 * fov);
}
void Tracker_PT::run()
@@ -112,17 +112,18 @@ void Tracker_PT::run()
for (unsigned i = 0; i < points.size(); i++)
{
auto& p = points[i];
+ auto p2 = cv::Point(p[0] * frame.cols + frame.cols/2, -p[1] * frame.cols + frame.rows/2);
cv::Scalar color(0, 255, 0);
if (i == points.size()-1)
color = cv::Scalar(0, 0, 255);
cv::line(frame,
- cv::Point(p[0] - 20, p[1]),
- cv::Point(p[0] + 20, p[1]),
+ cv::Point(p2.x - 20, p2.y),
+ cv::Point(p2.x + 20, p2.y),
color,
4);
cv::line(frame,
- cv::Point(p[0], p[1] - 20),
- cv::Point(p[0], p[1] + 20),
+ cv::Point(p2.x, p2.y - 20),
+ cv::Point(p2.x, p2.y + 20),
color,
4);
}
diff --git a/ftnoir_tracker_pt/point_extractor.cpp b/ftnoir_tracker_pt/point_extractor.cpp
index cc9dbce1..e81e3aa0 100644
--- a/ftnoir_tracker_pt/point_extractor.cpp
+++ b/ftnoir_tracker_pt/point_extractor.cpp
@@ -211,7 +211,8 @@ std::vector<Vec2f> PointExtractor::extract_points(Mat& frame)
for (auto& b : simple_blob::merge(blobs))
{
auto pos = b.effective_pos();
- points.push_back(pos);
+ Vec2f p((pos[0] - W/2)/W, -(pos[1] - H/2)/W);
+ points.push_back(p);
}
vector<Mat> channels_;