diff options
-rw-r--r-- | facetracknoir/curve-config.cpp | 6 | ||||
-rw-r--r-- | facetracknoir/curve-config.h | 4 | ||||
-rw-r--r-- | facetracknoir/facetracknoir.ui | 11 | ||||
-rw-r--r-- | ftnoir_filter_accela/ftnoir_accela_filtercontrols.ui | 9 | ||||
-rw-r--r-- | ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp | 13 | ||||
-rw-r--r-- | ftnoir_tracker_ht/ftnoir_tracker_ht.cpp | 8 |
6 files changed, 30 insertions, 21 deletions
diff --git a/facetracknoir/curve-config.cpp b/facetracknoir/curve-config.cpp index f5ed6aa7..b6c99fed 100644 --- a/facetracknoir/curve-config.cpp +++ b/facetracknoir/curve-config.cpp @@ -86,11 +86,7 @@ void CurveConfigurationDialog::loadSettings() { alt_configs[i]->setConfig(&mainApp->axis(i).curveAlt, currentFile); configs[i]->loadSettings(currentFile); alt_configs[i]->loadSettings(currentFile); - connect(configs[i], SIGNAL(CurveChanged(bool)), this, SLOT(curveChanged(bool)), Qt::UniqueConnection); - connect(alt_configs[i], SIGNAL(CurveChanged(bool)), this, SLOT(curveChanged(bool)), Qt::UniqueConnection); } - - settingsDirty = false; } // @@ -119,6 +115,4 @@ void CurveConfigurationDialog::save() { ui.rxconfig_alt->saveSettings(currentFile); ui.ryconfig_alt->saveSettings(currentFile); ui.rzconfig_alt->saveSettings(currentFile); - - settingsDirty = false; } diff --git a/facetracknoir/curve-config.h b/facetracknoir/curve-config.h index 950f6d14..0949cdc4 100644 --- a/facetracknoir/curve-config.h +++ b/facetracknoir/curve-config.h @@ -14,13 +14,9 @@ public: private: Ui::UICCurveConfigurationDialog ui; void save(); - - bool settingsDirty; FaceTrackNoIR *mainApp; private slots: void doOK(); void doCancel(); - void curveChanged( bool ) { settingsDirty = true; } - void curveChanged( int ) { settingsDirty = true; } }; diff --git a/facetracknoir/facetracknoir.ui b/facetracknoir/facetracknoir.ui index d5300b0f..b257ae30 100644 --- a/facetracknoir/facetracknoir.ui +++ b/facetracknoir/facetracknoir.ui @@ -39,7 +39,7 @@ <string>opentrack</string>
</property>
<property name="windowIcon">
- <iconset resource="../ftnoir_protocol_ftn/ftn-protocol.qrc">
+ <iconset resource="main-facetracknoir.qrc">
<normaloff>:/images/facetracknoir.png</normaloff>:/images/facetracknoir.png</iconset>
</property>
<property name="toolTip">
@@ -702,16 +702,16 @@ <widget class="QGroupBox" name="groupFilter">
<property name="geometry">
<rect>
- <x>550</x>
+ <x>580</x>
<y>210</y>
- <width>231</width>
+ <width>171</width>
<height>91</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>180</width>
- <height>80</height>
+ <width>0</width>
+ <height>0</height>
</size>
</property>
<property name="maximumSize">
@@ -1721,7 +1721,6 @@ </customwidget>
</customwidgets>
<resources>
- <include location="../ftnoir_protocol_ftn/ftn-protocol.qrc"/>
<include location="main-facetracknoir.qrc"/>
</resources>
<connections/>
diff --git a/ftnoir_filter_accela/ftnoir_accela_filtercontrols.ui b/ftnoir_filter_accela/ftnoir_accela_filtercontrols.ui index 6111b3f9..54493041 100644 --- a/ftnoir_filter_accela/ftnoir_accela_filtercontrols.ui +++ b/ftnoir_filter_accela/ftnoir_accela_filtercontrols.ui @@ -352,6 +352,15 @@ background:none;</string> </item> </layout> </widget> + <tabstops> + <tabstop>rotation_alpha</tabstop> + <tabstop>translation_alpha</tabstop> + <tabstop>order_2nd</tabstop> + <tabstop>order_3rd</tabstop> + <tabstop>deadzone</tabstop> + <tabstop>expt</tabstop> + <tabstop>buttonBox</tabstop> + </tabstops> <resources> <include location="../ftnoir_filter_ewma2/ewma-filter.qrc"/> </resources> diff --git a/ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp b/ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp index 2edac4a2..9c8cd52b 100644 --- a/ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp +++ b/ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp @@ -18,6 +18,7 @@ #include <cstdio> #if defined(_WIN32) +#define NOMINMAX # define NO_DSHOW_STRSAFE # include <dshow.h> #else @@ -194,6 +195,7 @@ void Tracker::run() int cur_fps = 0; int last_fps = 0; cv::Point2f last_centroid; + bool first = true, pitch_sign = true; while (!stop) { @@ -317,7 +319,9 @@ void Tracker::run() last_roi.height = std::min<int>(grayscale.rows - last_roi.y, last_roi.height); } - cv::solvePnP(obj_points, m, intrinsics, dist_coeffs, rvec, tvec, false, cv::ITERATIVE); + cv::solvePnP(obj_points, m, intrinsics, dist_coeffs, rvec, tvec, !first, cv::ITERATIVE); + + first = false; cv::Mat rotation_matrix = cv::Mat::zeros(3, 3, CV_64FC1); @@ -328,6 +332,12 @@ void Tracker::run() { cv::Vec3d euler = cv::RQDecomp3x3(rotation_matrix, junk1, junk2); + if ((euler[0] > 0) != pitch_sign) + { + first = true; + pitch_sign = euler[0] > 0; + } + QMutexLocker lck(&mtx); for (int i = 0; i < 3; i++) @@ -353,6 +363,7 @@ void Tracker::run() else { last_roi = cv::Rect(65535, 65535, 0, 0); + first = true; } if (frame.rows > 0) diff --git a/ftnoir_tracker_ht/ftnoir_tracker_ht.cpp b/ftnoir_tracker_ht/ftnoir_tracker_ht.cpp index 4ce56acc..a133fd7a 100644 --- a/ftnoir_tracker_ht/ftnoir_tracker_ht.cpp +++ b/ftnoir_tracker_ht/ftnoir_tracker_ht.cpp @@ -115,17 +115,17 @@ void Tracker::load_settings(ht_config_t* config) config->field_of_view = s.fov; config->pyrlk_pyramids = 0; config->pyrlk_win_size_w = config->pyrlk_win_size_h = 21; - config->max_keypoints = 350; - config->keypoint_distance = 3.4; + config->max_keypoints = 300; + config->keypoint_distance = 3.2; config->force_fps = nframes; config->camera_index = s.camera_idx - 1; config->ransac_num_iters = 100; config->ransac_max_reprojection_error = 8; config->ransac_max_inlier_error = 8; - config->ransac_abs_max_mean_error = 20; + config->ransac_abs_max_mean_error = 16; config->ransac_max_mean_error = 6.5; config->debug = 0; - config->ransac_min_features = 0.72; + config->ransac_min_features = 0.83; int res = s.resolution; if (res < 0 || res >= (int)(sizeof(resolution_choices) / sizeof(resolution_tuple))) res = 0; |