summaryrefslogtreecommitdiffhomepage
path: root/tracker-pt/ftnoir_tracker_pt.h
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2016-09-20 23:08:10 +0200
committerStanislaw Halik <sthalik@misaki.pl>2016-09-20 23:24:16 +0200
commit9da39ce65e42097b5f05eed2ce2cd40cf234ef73 (patch)
treeda0ad49b346c5802c1c6d9954ac5053de8ba3202 /tracker-pt/ftnoir_tracker_pt.h
parent32e1adc0af44cf0cb8495118700884b7ad479a6e (diff)
tracker/pt: merge from unstable
- the pose estimator doesn't need locking at all - only return point count to the dialog, reducing locking - allow for only 8 pixels difference between consecutive dynamic pose frames at 640x480, half that at 320x240 - extract points taking in account pixel brightness, not merely contours - in case of more than three points, prefer the brightest ones scoring on radius and average pixel brightness
Diffstat (limited to 'tracker-pt/ftnoir_tracker_pt.h')
-rwxr-xr-xtracker-pt/ftnoir_tracker_pt.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/tracker-pt/ftnoir_tracker_pt.h b/tracker-pt/ftnoir_tracker_pt.h
index 613d9e82..c9936cbc 100755
--- a/tracker-pt/ftnoir_tracker_pt.h
+++ b/tracker-pt/ftnoir_tracker_pt.h
@@ -41,7 +41,7 @@ public:
void data(double* data) override;
Affine pose() { return point_tracker.pose(); }
- int get_n_points() { return point_extractor.get_n_points(); }
+ int get_n_points() { QMutexLocker l(&points_mtx); return int(points.size()); }
bool get_cam_info(CamInfo* info) { QMutexLocker lock(&camera_mtx); return camera.get_info(*info); }
public slots:
void apply_settings();
@@ -56,9 +56,9 @@ private:
void reset_command(Command command);
cv::Vec3d get_model_offset();
- QMutex camera_mtx;
bool get_focal_length(double& ret);
+ QMutex camera_mtx, points_mtx;
CVCamera camera;
PointExtractor point_extractor;
PointTracker point_tracker;
@@ -67,13 +67,17 @@ private:
QFrame* video_frame;
settings_pt s;
- Timer time;
cv::Mat frame;
-
+ Timer time;
+
+ std::vector<cv::Vec2d> points;
+
+ volatile int commands;
+
volatile bool ever_success;
- static constexpr double rad2deg = 180.0/3.14159265;
- static constexpr double deg2rad = 3.14159265/180.0;
+ static constexpr double rad2deg = 180/M_PI;
+ //static constexpr float deg2rad = float(M_PI/180);
};
class TrackerDll : public Metadata