summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStéphane Lenclud <github@lenclud.com>2019-04-15 10:08:40 +0200
committerStéphane Lenclud <github@lenclud.com>2019-04-24 18:46:12 +0200
commit36df4734dcd3cd50565336e2e81b38971bfc3934 (patch)
treee6918611682c8a4fbd486440886d582fb81a36af
parent14a403d0928bb8ef600017294cafc8b15b1540e7 (diff)
Easy Tracker: Making full size preview optional
-rw-r--r--tracker-easy/lang/nl_NL.ts16
-rw-r--r--tracker-easy/lang/ru_RU.ts16
-rw-r--r--tracker-easy/lang/stub.ts16
-rw-r--r--tracker-easy/lang/zh_CN.ts16
-rw-r--r--tracker-easy/settings.h4
-rw-r--r--tracker-easy/tracker-easy-dialog.cpp3
-rw-r--r--tracker-easy/tracker-easy-settings.ui265
-rw-r--r--tracker-easy/tracker-easy.cpp20
8 files changed, 152 insertions, 204 deletions
diff --git a/tracker-easy/lang/nl_NL.ts b/tracker-easy/lang/nl_NL.ts
index b10c7e14..1054e1f7 100644
--- a/tracker-easy/lang/nl_NL.ts
+++ b/tracker-easy/lang/nl_NL.ts
@@ -82,10 +82,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Dynamic pose timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Desired capture framerate</source>
<translation type="unfinished"></translation>
</message>
@@ -102,10 +98,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source> ms</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Device</source>
<translation type="unfinished"></translation>
</message>
@@ -166,10 +158,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Dynamic pose (for caps only, never clips)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Maximum point diameter</source>
<translation type="unfinished"></translation>
</message>
@@ -274,5 +262,9 @@ Don&apos;t roll or change position.</source>
<source>Green only</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Debug (full size preview)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/tracker-easy/lang/ru_RU.ts b/tracker-easy/lang/ru_RU.ts
index 7f5df2e2..66245b14 100644
--- a/tracker-easy/lang/ru_RU.ts
+++ b/tracker-easy/lang/ru_RU.ts
@@ -82,10 +82,6 @@
<translation></translation>
</message>
<message>
- <source>Dynamic pose timeout</source>
- <translation>Динамическая поза (время ожидания)</translation>
- </message>
- <message>
<source>Desired capture framerate</source>
<translation>Желаемая частота кадров</translation>
</message>
@@ -102,14 +98,6 @@
<translation>Высота</translation>
</message>
<message>
- <source> ms</source>
- <translation> мс</translation>
- </message>
- <message>
- <source>Dynamic pose (for caps only, never clips)</source>
- <translation>Динамическая поза (Только для модели &quot;Кепка&quot;)</translation>
- </message>
- <message>
<source>Device</source>
<translation>Устройство</translation>
</message>
@@ -279,5 +267,9 @@ ROLL или X/Y-смещения.</translation>
<source>Green only</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Debug (full size preview)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/tracker-easy/lang/stub.ts b/tracker-easy/lang/stub.ts
index 144b8e76..eca29787 100644
--- a/tracker-easy/lang/stub.ts
+++ b/tracker-easy/lang/stub.ts
@@ -82,10 +82,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Dynamic pose timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Desired capture framerate</source>
<translation type="unfinished"></translation>
</message>
@@ -102,10 +98,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source> ms</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Device</source>
<translation type="unfinished"></translation>
</message>
@@ -166,10 +158,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Dynamic pose (for caps only, never clips)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Maximum point diameter</source>
<translation type="unfinished"></translation>
</message>
@@ -274,5 +262,9 @@ Don&apos;t roll or change position.</source>
<source>Green only</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Debug (full size preview)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/tracker-easy/lang/zh_CN.ts b/tracker-easy/lang/zh_CN.ts
index 43e121ac..656cb8db 100644
--- a/tracker-easy/lang/zh_CN.ts
+++ b/tracker-easy/lang/zh_CN.ts
@@ -82,10 +82,6 @@
<translation> 像素点</translation>
</message>
<message>
- <source>Dynamic pose timeout</source>
- <translation>动态姿态超时时间</translation>
- </message>
- <message>
<source>Desired capture framerate</source>
<translation>期望帧数</translation>
</message>
@@ -102,10 +98,6 @@
<translation>高度</translation>
</message>
<message>
- <source> ms</source>
- <translation> 毫秒</translation>
- </message>
- <message>
<source>Device</source>
<translation>设备名称</translation>
</message>
@@ -258,10 +250,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Dynamic pose (for caps only, never clips)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Value</source>
<translation type="unfinished"></translation>
</message>
@@ -274,5 +262,9 @@ Don&apos;t roll or change position.</source>
<source>Green only</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Debug (full size preview)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/tracker-easy/settings.h b/tracker-easy/settings.h
index 7d8c7c70..ed5d0abd 100644
--- a/tracker-easy/settings.h
+++ b/tracker-easy/settings.h
@@ -54,8 +54,8 @@ namespace EasyTracker {
value<int> fov{ b, "camera-fov", 56 };
- value<bool> dynamic_pose{ b, "dynamic-pose-resolution", false };
- value<int> init_phase_timeout{ b, "init-phase-timeout", 250 };
+ value<bool> debug{ b, "debug", false };
+
value<bool> auto_threshold{ b, "automatic-threshold", true };
value<pt_color_type> blob_color{ b, "blob-color", pt_color_natural };
diff --git a/tracker-easy/tracker-easy-dialog.cpp b/tracker-easy/tracker-easy-dialog.cpp
index 0b0dd61d..f56ddfdb 100644
--- a/tracker-easy/tracker-easy-dialog.cpp
+++ b/tracker-easy/tracker-easy-dialog.cpp
@@ -71,8 +71,7 @@ namespace EasyTracker
tie_setting(s.active_model_panel, ui.model_tabs);
- tie_setting(s.dynamic_pose, ui.dynamic_pose);
- tie_setting(s.init_phase_timeout, ui.init_phase_timeout);
+ tie_setting(s.debug, ui.debug);
tie_setting(s.auto_threshold, ui.auto_threshold);
diff --git a/tracker-easy/tracker-easy-settings.ui b/tracker-easy/tracker-easy-settings.ui
index 41f08707..4430020d 100644
--- a/tracker-easy/tracker-easy-settings.ui
+++ b/tracker-easy/tracker-easy-settings.ui
@@ -23,7 +23,7 @@
<string>PointTracker Settings</string>
</property>
<property name="windowIcon">
- <iconset resource="tracker_easy.qrc">
+ <iconset>
<normaloff>:/Resources/tracker-easy-logo.png</normaloff>:/Resources/tracker-easy-logo.png</iconset>
</property>
<property name="layoutDirection">
@@ -134,43 +134,50 @@
<string>Camera settings</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
- <item row="0" column="1">
- <widget class="QComboBox" name="camdevice_combo">
+ <item row="5" column="0">
+ <widget class="QLabel" name="label_5">
<property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+ <sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="minimumContentsLength">
- <number>10</number>
+ <property name="text">
+ <string>Debug (full size preview)</string>
</property>
</widget>
</item>
- <item row="4" column="1">
- <widget class="QSpinBox" name="fov">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_2">
<property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+ <sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="suffix">
- <string>°</string>
+ <property name="text">
+ <string>Device</string>
</property>
- <property name="prefix">
- <string/>
+ <property name="buddy">
+ <cstring>camdevice_combo</cstring>
</property>
- <property name="minimum">
- <number>10</number>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="camdevice_combo">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="maximum">
- <number>90</number>
+ <property name="minimumContentsLength">
+ <number>10</number>
</property>
</widget>
</item>
- <item row="4" column="0">
- <widget class="QLabel" name="label_4">
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_41">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
@@ -178,12 +185,12 @@
</sizepolicy>
</property>
<property name="text">
- <string>Diagonal field of view</string>
+ <string>Height</string>
</property>
</widget>
</item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_36">
+ <item row="7" column="0">
+ <widget class="QLabel" name="label_12">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
@@ -191,50 +198,38 @@
</sizepolicy>
</property>
<property name="text">
- <string>Width</string>
+ <string>Color channels used</string>
</property>
</widget>
</item>
- <item row="3" column="0">
- <widget class="QLabel" name="label_37">
+ <item row="5" column="1">
+ <widget class="QCheckBox" name="debug">
<property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Maximum">
+ <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
- <string>FPS</string>
- </property>
- <property name="buddy">
- <cstring>fps_spin</cstring>
+ <string/>
</property>
</widget>
</item>
- <item row="2" column="1">
- <widget class="QSpinBox" name="res_y_spin">
+ <item row="6" column="1">
+ <widget class="QPushButton" name="camera_settings">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="toolTip">
- <string>Desired capture height</string>
- </property>
- <property name="suffix">
- <string> px</string>
- </property>
- <property name="maximum">
- <number>2000</number>
- </property>
- <property name="singleStep">
- <number>10</number>
+ <property name="text">
+ <string>Open</string>
</property>
</widget>
</item>
<item row="6" column="0">
- <widget class="QLabel" name="label_6">
+ <widget class="QLabel" name="label_9">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
@@ -242,44 +237,69 @@
</sizepolicy>
</property>
<property name="text">
- <string>Dynamic pose timeout</string>
+ <string>Camera settings (when available)</string>
</property>
</widget>
</item>
- <item row="3" column="1">
- <widget class="QSpinBox" name="fps_spin">
+ <item row="7" column="1">
+ <widget class="QComboBox" name="blob_color">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="toolTip">
- <string>Desired capture framerate</string>
- </property>
- <property name="suffix">
- <string> Hz</string>
- </property>
- <property name="maximum">
- <number>2000</number>
- </property>
+ <item>
+ <property name="text">
+ <string>Average</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Natural</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Red only</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Green only</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Blue only</string>
+ </property>
+ </item>
</widget>
</item>
- <item row="5" column="1">
- <widget class="QCheckBox" name="dynamic_pose">
+ <item row="4" column="1">
+ <widget class="QSpinBox" name="fov">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="text">
+ <property name="suffix">
+ <string>°</string>
+ </property>
+ <property name="prefix">
<string/>
</property>
+ <property name="minimum">
+ <number>10</number>
+ </property>
+ <property name="maximum">
+ <number>90</number>
+ </property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QSpinBox" name="res_x_spin">
+ <item row="2" column="1">
+ <widget class="QSpinBox" name="res_y_spin">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
@@ -287,7 +307,7 @@
</sizepolicy>
</property>
<property name="toolTip">
- <string>Desired capture width</string>
+ <string>Desired capture height</string>
</property>
<property name="suffix">
<string> px</string>
@@ -300,8 +320,8 @@
</property>
</widget>
</item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_41">
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_36">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
@@ -309,31 +329,12 @@
</sizepolicy>
</property>
<property name="text">
- <string>Height</string>
- </property>
- </widget>
- </item>
- <item row="6" column="1">
- <widget class="QSpinBox" name="init_phase_timeout">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="suffix">
- <string> ms</string>
- </property>
- <property name="minimum">
- <number>50</number>
- </property>
- <property name="maximum">
- <number>5000</number>
+ <string>Width</string>
</property>
</widget>
</item>
- <item row="0" column="0">
- <widget class="QLabel" name="label_2">
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
@@ -341,41 +342,31 @@
</sizepolicy>
</property>
<property name="text">
- <string>Device</string>
- </property>
- <property name="buddy">
- <cstring>camdevice_combo</cstring>
+ <string>Diagonal field of view</string>
</property>
</widget>
</item>
- <item row="7" column="1">
- <widget class="QPushButton" name="camera_settings">
+ <item row="3" column="1">
+ <widget class="QSpinBox" name="fps_spin">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="text">
- <string>Open</string>
+ <property name="toolTip">
+ <string>Desired capture framerate</string>
</property>
- </widget>
- </item>
- <item row="7" column="0">
- <widget class="QLabel" name="label_9">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Maximum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="suffix">
+ <string> Hz</string>
</property>
- <property name="text">
- <string>Camera settings (when available)</string>
+ <property name="maximum">
+ <number>2000</number>
</property>
</widget>
</item>
- <item row="8" column="0">
- <widget class="QLabel" name="label_12">
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_37">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
@@ -383,55 +374,32 @@
</sizepolicy>
</property>
<property name="text">
- <string>Color channels used</string>
+ <string>FPS</string>
+ </property>
+ <property name="buddy">
+ <cstring>fps_spin</cstring>
</property>
</widget>
</item>
- <item row="8" column="1">
- <widget class="QComboBox" name="blob_color">
+ <item row="1" column="1">
+ <widget class="QSpinBox" name="res_x_spin">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <item>
- <property name="text">
- <string>Average</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Natural</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Red only</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Green only</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Blue only</string>
- </property>
- </item>
- </widget>
- </item>
- <item row="5" column="0">
- <widget class="QLabel" name="label_5">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Maximum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="toolTip">
+ <string>Desired capture width</string>
</property>
- <property name="text">
- <string>Dynamic pose (for caps only, never clips)</string>
+ <property name="suffix">
+ <string> px</string>
+ </property>
+ <property name="maximum">
+ <number>2000</number>
+ </property>
+ <property name="singleStep">
+ <number>10</number>
</property>
</widget>
</item>
@@ -1349,7 +1317,7 @@ Don't roll or change position.</string>
<string/>
</property>
<property name="pixmap">
- <pixmap resource="tracker_easy.qrc">:/Resources/tracker-easy-logo.png</pixmap>
+ <pixmap>:/Resources/tracker-easy-logo.png</pixmap>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@@ -1382,8 +1350,7 @@ Don't roll or change position.</string>
<tabstop>res_y_spin</tabstop>
<tabstop>fps_spin</tabstop>
<tabstop>fov</tabstop>
- <tabstop>dynamic_pose</tabstop>
- <tabstop>init_phase_timeout</tabstop>
+ <tabstop>debug</tabstop>
<tabstop>camera_settings</tabstop>
<tabstop>blob_color</tabstop>
<tabstop>auto_threshold</tabstop>
diff --git a/tracker-easy/tracker-easy.cpp b/tracker-easy/tracker-easy.cpp
index 7850a23e..e69cbb92 100644
--- a/tracker-easy/tracker-easy.cpp
+++ b/tracker-easy/tracker-easy.cpp
@@ -121,7 +121,10 @@ namespace EasyTracker
QMutexLocker l(&camera_mtx);
if (camera)
+ {
std::tie(iFrame, new_frame) = camera->get_frame();
+ }
+
}
if (new_frame)
@@ -304,8 +307,11 @@ namespace EasyTracker
}
// Show full size preview pop-up
- cv::imshow("Preview", iPreview.iFrameRgb);
- cv::waitKey(1);
+ if (s.debug)
+ {
+ cv::imshow("Preview", iPreview.iFrameRgb);
+ cv::waitKey(1);
+ }
// Update preview widget
widget->update_image(iPreview.get_bitmap());
@@ -321,7 +327,10 @@ namespace EasyTracker
else
{
// No preview, destroy preview pop-up
- cv::destroyWindow("Preview");
+ if (s.debug)
+ {
+ cv::destroyWindow("Preview");
+ }
}
}
}
@@ -331,6 +340,11 @@ namespace EasyTracker
{
QMutexLocker l(&camera_mtx);
+ if (camera->is_open())
+ {
+ return true;
+ }
+
iCameraInfo.fps = s.cam_fps;
iCameraInfo.width = s.cam_res_x;
iCameraInfo.height = s.cam_res_y;