diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2016-09-20 23:08:10 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2016-09-20 23:24:16 +0200 |
commit | 9da39ce65e42097b5f05eed2ce2cd40cf234ef73 (patch) | |
tree | da0ad49b346c5802c1c6d9954ac5053de8ba3202 /tracker-pt/ftnoir_tracker_pt.h | |
parent | 32e1adc0af44cf0cb8495118700884b7ad479a6e (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-x | tracker-pt/ftnoir_tracker_pt.h | 16 |
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 |