diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2016-09-05 20:31:01 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2016-09-05 20:31:01 +0200 |
commit | dec625e51878c9167100837086f82fb0f78b0189 (patch) | |
tree | 43f0e083d0630952ae666f588e2b43c8f358ac4f | |
parent | 420748abc9b5cd13b4f0d98068619e90d503450d (diff) |
tracker/{aruco,pt}: remove camera settings button
It's broken and users complain on the issue tracker.
Also fix tab stops.
-rw-r--r-- | cv/camera-dialog.cpp | 71 | ||||
-rw-r--r-- | cv/camera-dialog.hpp | 37 | ||||
-rw-r--r-- | tracker-aruco/aruco-trackercontrols.ui | 81 | ||||
-rw-r--r-- | tracker-aruco/ftnoir_tracker_aruco.cpp | 6 | ||||
-rw-r--r-- | tracker-aruco/ftnoir_tracker_aruco.h | 7 | ||||
-rw-r--r-- | tracker-pt/FTNoIR_PT_Controls.ui | 110 | ||||
-rw-r--r-- | tracker-pt/ftnoir_tracker_pt.h | 1 | ||||
-rw-r--r-- | tracker-pt/ftnoir_tracker_pt_dialog.cpp | 9 | ||||
-rw-r--r-- | tracker-pt/ftnoir_tracker_pt_dialog.h | 6 |
9 files changed, 94 insertions, 234 deletions
diff --git a/cv/camera-dialog.cpp b/cv/camera-dialog.cpp deleted file mode 100644 index b422e63c..00000000 --- a/cv/camera-dialog.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (c) 2015, Stanislaw Halik <sthalik@misaki.pl> - - * Permission to use, copy, modify, and/or distribute this - * software for any purpose with or without fee is hereby granted, - * provided that the above copyright notice and this permission - * notice appear in all copies. - */ - -#include "cv/camera-dialog.hpp" -#include <QDebug> -#include <QMutexLocker> - -void camera_dialog::maybe_grab_frame(cv::VideoCapture& cap) -{ - for (int i = 0; i < 60; i++) - { - if (cap.grab()) - break; - portable::sleep(50); - } -} - -camera_dialog::~camera_dialog() {} - -void camera_dialog::open_camera_settings(cv::VideoCapture* cap, const QString& camera_name, QMutex* camera_mtx) -{ -#ifdef _WIN32 - init_com_threading(); - - if (cap) - { - QMutexLocker l(camera_mtx); - - if (cap->isOpened()) - { - maybe_grab_frame(*cap); - cap->set(cv::CAP_PROP_SETTINGS, 1); - return; - } - } - - if (t.isActive()) - t.stop(); - - // don't hog the camera capture - if (!t.isSingleShot()) - QObject::connect(&t, &QTimer::timeout, [&]() -> void { delete_capture(); }); - - fake_capture = cv::VideoCapture(camera_name_to_index(camera_name)); - maybe_grab_frame(fake_capture); - fake_capture.set(cv::CAP_PROP_SETTINGS, 1); - - t.setSingleShot(true); - t.setInterval(5000); - - // HACK: we're not notified when it's safe to close the capture - t.start(); -#elif defined(__linux) - int idx = camera_name_to_index(camera_name); - QProcess::startDetached("qv4l2", QStringList() << "-d" << ("/dev/video" + QString::number(idx))); -#else - // nothing -#endif -} - -#ifdef _WIN32 -void camera_dialog::delete_capture() -{ - fake_capture.open(""); -} -#endif diff --git a/cv/camera-dialog.hpp b/cv/camera-dialog.hpp deleted file mode 100644 index c5896ca3..00000000 --- a/cv/camera-dialog.hpp +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2015, Stanislaw Halik <sthalik@misaki.pl> - - * Permission to use, copy, modify, and/or distribute this - * software for any purpose with or without fee is hereby granted, - * provided that the above copyright notice and this permission - * notice appear in all copies. - */ - -#pragma once - -#include "compat/camera-names.hpp" -#include "compat/sleep.hpp" -#include "compat/win32-com.hpp" - -#ifdef __linux -# include <QProcess> -#endif - -#ifdef _WIN32 -# include <QTimer> -#endif - -#include <opencv2/videoio.hpp> -#include <QMutex> - -class camera_dialog -{ - static void maybe_grab_frame(cv::VideoCapture& cap); -public: - virtual ~camera_dialog(); - void open_camera_settings(cv::VideoCapture*, const QString&, QMutex*); -#if defined(_WIN32) - cv::VideoCapture fake_capture; - QTimer t; - void delete_capture(); -#endif -}; diff --git a/tracker-aruco/aruco-trackercontrols.ui b/tracker-aruco/aruco-trackercontrols.ui index 807fa909..ed1c1edf 100644 --- a/tracker-aruco/aruco-trackercontrols.ui +++ b/tracker-aruco/aruco-trackercontrols.ui @@ -10,7 +10,7 @@ <x>0</x> <y>0</y> <width>485</width> - <height>202</height> + <height>180</height> </rect> </property> <property name="sizePolicy"> @@ -40,6 +40,20 @@ </property> </widget> </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Camera name</string> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_4"> + <property name="text"> + <string>Resolution</string> + </property> + </widget> + </item> <item row="3" column="1"> <widget class="QComboBox" name="resolution"> <property name="sizePolicy"> @@ -70,27 +84,6 @@ </item> </widget> </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Camera name</string> - </property> - </widget> - </item> - <item row="3" column="0"> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>Resolution</string> - </property> - </widget> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Diagonal FOV</string> - </property> - </widget> - </item> <item row="1" column="1"> <widget class="QComboBox" name="cameraFPS"> <property name="sizePolicy"> @@ -131,6 +124,13 @@ </item> </widget> </item> + <item row="0" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Diagonal FOV</string> + </property> + </widget> + </item> <item row="2" column="1"> <widget class="QComboBox" name="cameraName"> <property name="sizePolicy"> @@ -141,20 +141,6 @@ </property> </widget> </item> - <item row="4" column="0"> - <widget class="QLabel" name="label_6"> - <property name="text"> - <string>Camera settings</string> - </property> - </widget> - </item> - <item row="4" column="1"> - <widget class="QPushButton" name="camera_settings"> - <property name="text"> - <string>Open</string> - </property> - </widget> - </item> <item row="0" column="1"> <widget class="QSpinBox" name="cameraFOV"> <property name="sizePolicy"> @@ -174,6 +160,19 @@ </property> </widget> </item> + <item row="4" column="1"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>0</height> + </size> + </property> + </spacer> + </item> </layout> </widget> </item> @@ -264,6 +263,16 @@ </item> </layout> </widget> + <tabstops> + <tabstop>cameraFOV</tabstop> + <tabstop>cameraFPS</tabstop> + <tabstop>cameraName</tabstop> + <tabstop>resolution</tabstop> + <tabstop>cx</tabstop> + <tabstop>cy</tabstop> + <tabstop>cz</tabstop> + <tabstop>btn_calibrate</tabstop> + </tabstops> <resources/> <connections/> <designerdata> diff --git a/tracker-aruco/ftnoir_tracker_aruco.cpp b/tracker-aruco/ftnoir_tracker_aruco.cpp index 4fc5405f..d59ac9be 100644 --- a/tracker-aruco/ftnoir_tracker_aruco.cpp +++ b/tracker-aruco/ftnoir_tracker_aruco.cpp @@ -426,7 +426,6 @@ TrackerControls::TrackerControls() connect(ui.btn_calibrate, SIGNAL(clicked()), this, SLOT(toggleCalibrate())); connect(this, SIGNAL(destroyed()), this, SLOT(cleanupCalib())); connect(&calib_timer, SIGNAL(timeout()), this, SLOT(update_tracker_calibration())); - connect(ui.camera_settings, SIGNAL(clicked()), this, SLOT(camera_settings())); } void TrackerControls::toggleCalibrate() @@ -478,9 +477,4 @@ void TrackerControls::doCancel() close(); } -void TrackerControls::camera_settings() -{ - open_camera_settings(tracker ? &tracker->camera : nullptr, s.camera_name, tracker ? &tracker->camera_mtx : nullptr); -} - OPENTRACK_DECLARE_TRACKER(Tracker, TrackerControls, TrackerDll) diff --git a/tracker-aruco/ftnoir_tracker_aruco.h b/tracker-aruco/ftnoir_tracker_aruco.h index 1dd08cb1..101060f7 100644 --- a/tracker-aruco/ftnoir_tracker_aruco.h +++ b/tracker-aruco/ftnoir_tracker_aruco.h @@ -11,11 +11,11 @@ #include "api/plugin-api.hpp" #include "include/markerdetector.h" -#include "cv/camera-dialog.hpp" #include "cv/video-widget.hpp" #include "cv/translation-calibrator.hpp" -#include <opencv2/core/core.hpp> +#include <opencv2/core.hpp> +#include <opencv2/videoio.hpp> #include <QObject> #include <QThread> @@ -106,7 +106,7 @@ private: static constexpr double alpha_ = .95; }; -class TrackerControls : public ITrackerDialog, protected camera_dialog +class TrackerControls : public ITrackerDialog { Q_OBJECT public: @@ -125,7 +125,6 @@ private slots: void toggleCalibrate(); void cleanupCalib(); void update_tracker_calibration(); - void camera_settings(); }; class TrackerDll : public Metadata diff --git a/tracker-pt/FTNoIR_PT_Controls.ui b/tracker-pt/FTNoIR_PT_Controls.ui index 54628964..2675f1a4 100644 --- a/tracker-pt/FTNoIR_PT_Controls.ui +++ b/tracker-pt/FTNoIR_PT_Controls.ui @@ -10,7 +10,7 @@ <x>0</x> <y>0</y> <width>424</width> - <height>579</height> + <height>568</height> </rect> </property> <property name="sizePolicy"> @@ -83,25 +83,16 @@ </property> </widget> </item> - <item row="2" column="1"> - <widget class="QSpinBox" name="res_y_spin"> + <item row="1" column="0"> + <widget class="QLabel" name="label_36"> <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <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>Width</string> </property> </widget> </item> @@ -118,19 +109,6 @@ </property> </widget> </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_36"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Width</string> - </property> - </widget> - </item> <item row="4" column="1"> <widget class="QSpinBox" name="fov"> <property name="suffix"> @@ -147,23 +125,25 @@ </property> </widget> </item> - <item row="5" column="1"> - <widget class="QCheckBox" name="dynamic_pose"> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item row="5" column="0"> - <widget class="QLabel" name="label_5"> + <item row="2" column="1"> + <widget class="QSpinBox" name="res_y_spin"> <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="text"> - <string>Dynamic pose resolution</string> + <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> </widget> </item> @@ -193,6 +173,26 @@ </property> </widget> </item> + <item row="5" column="1"> + <widget class="QCheckBox" name="dynamic_pose"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="5" column="0"> + <widget class="QLabel" name="label_5"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Dynamic pose resolution</string> + </property> + </widget> + </item> <item row="6" column="1"> <widget class="QSpinBox" name="init_phase_timeout"> <property name="suffix"> @@ -241,19 +241,6 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QComboBox" name="camdevice_combo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumContentsLength"> - <number>10</number> - </property> - </widget> - </item> <item row="0" column="0"> <widget class="QLabel" name="label_2"> <property name="sizePolicy"> @@ -270,23 +257,16 @@ </property> </widget> </item> - <item row="7" column="0"> - <widget class="QLabel" name="label_9"> - <property name="text"> - <string>Camera settings dialog</string> - </property> - </widget> - </item> - <item row="7" column="1"> - <widget class="QPushButton" name="camera_settings"> + <item row="0" column="1"> + <widget class="QComboBox" name="camdevice_combo"> <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Maximum"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="text"> - <string>Open</string> + <property name="minimumContentsLength"> + <number>10</number> </property> </widget> </item> diff --git a/tracker-pt/ftnoir_tracker_pt.h b/tracker-pt/ftnoir_tracker_pt.h index 04a6646f..29902260 100644 --- a/tracker-pt/ftnoir_tracker_pt.h +++ b/tracker-pt/ftnoir_tracker_pt.h @@ -15,7 +15,6 @@ #include "point_extractor.h" #include "point_tracker.h" #include "compat/timer.hpp" -#include "cv/camera-dialog.hpp" #include "cv/video-widget.hpp" #include "compat/pi-constant.hpp" diff --git a/tracker-pt/ftnoir_tracker_pt_dialog.cpp b/tracker-pt/ftnoir_tracker_pt_dialog.cpp index 88465c42..f5cabe4b 100644 --- a/tracker-pt/ftnoir_tracker_pt_dialog.cpp +++ b/tracker-pt/ftnoir_tracker_pt_dialog.cpp @@ -72,21 +72,12 @@ TrackerDialog_PT::TrackerDialog_PT() connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(doCancel())); connect(&timer,SIGNAL(timeout()), this,SLOT(poll_tracker_info())); - connect(ui.camera_settings, SIGNAL(clicked()), this, SLOT(camera_settings())); timer.start(250); connect(&calib_timer, &QTimer::timeout, this, &TrackerDialog_PT::trans_calib_step); calib_timer.setInterval(100); } -void TrackerDialog_PT::camera_settings() -{ - if (tracker) - open_camera_settings(static_cast<cv::VideoCapture*>(tracker->camera), s.camera_name, &tracker->camera_mtx); - else - open_camera_settings(nullptr, s.camera_name, nullptr); -} - void TrackerDialog_PT::startstop_trans_calib(bool start) { if (start) diff --git a/tracker-pt/ftnoir_tracker_pt_dialog.h b/tracker-pt/ftnoir_tracker_pt_dialog.h index c13c1216..b57e32c3 100644 --- a/tracker-pt/ftnoir_tracker_pt_dialog.h +++ b/tracker-pt/ftnoir_tracker_pt_dialog.h @@ -12,15 +12,12 @@ #include "ftnoir_tracker_pt_settings.h" #include "ftnoir_tracker_pt.h" #include "ui_FTNoIR_PT_Controls.h" -#include "cv/camera-dialog.hpp" #include "cv/translation-calibrator.hpp" #include "cv/video-widget.hpp" #include <QTimer> -//----------------------------------------------------------------------------- -// The dialog that shows up when the user presses "Settings" -class TrackerDialog_PT : public ITrackerDialog, protected camera_dialog +class TrackerDialog_PT : public ITrackerDialog { Q_OBJECT public: @@ -35,7 +32,6 @@ public slots: void startstop_trans_calib(bool start); void trans_calib_step(); void poll_tracker_info(); - void camera_settings(); private: settings_pt s; Tracker_PT* tracker; |