summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--facetracknoir/curve-config.cpp6
-rw-r--r--facetracknoir/curve-config.h4
-rw-r--r--facetracknoir/facetracknoir.ui11
-rw-r--r--ftnoir_filter_accela/ftnoir_accela_filtercontrols.ui9
-rw-r--r--ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp13
-rw-r--r--ftnoir_tracker_ht/ftnoir_tracker_ht.cpp8
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;