/* * Copyright (C) 2011, Mathieu Labbe - IntRoLab - Universite de Sherbrooke */ #ifndef MAINWINDOW_H_ #define MAINWINDOW_H_ #include #include #include #include #include #include #include #include #include #include "Vocabulary.h" class Ui_mainWindow; class ObjWidget; class Camera; class ParametersToolBox; class QLabel; class AboutDialog; class TcpServer; namespace rtabmap { class PdfPlotCurve; } class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(Camera * camera = 0, const QString & settings = "", QWidget * parent = 0); virtual ~MainWindow(); bool loadSettings(const QString & path); bool saveSettings(const QString & path); int loadObjects(const QString & dirPath); void saveObjects(const QString & dirPath); void setSourceImageText(const QString & text); protected: virtual void closeEvent(QCloseEvent * event); public slots: void startProcessing(); void stopProcessing(); void pauseProcessing(); private slots: void loadSettings(); void saveSettings(); void loadObjects(); bool saveObjects(); void addObjectFromScene(); void addObjectsFromFiles(); void loadSceneFromFile(); void setupCameraFromVideoFile(); void setupCameraFromImagesDirectory(); void setupCameraFromTcpIp(); void removeObject(ObjWidget * object); void removeAllObjects(); void updateObjectsSize(); void updateMirrorView(); void showHideControls(); void update(const cv::Mat & image); void updateObjects(); void notifyParametersChanged(const QStringList & param); void moveCameraFrame(int frame); void rectHovered(int objId); signals: void objectsFound(const QMultiMap > &); private: void setupTCPServer(); void addObjectFromFile(const QString & filePath); void showObject(ObjWidget * obj); void updateData(); void updateObjectSize(ObjWidget * obj); private: Ui_mainWindow * ui_; Camera * camera_; QString settings_; rtabmap::PdfPlotCurve * likelihoodCurve_; rtabmap::PdfPlotCurve * inliersCurve_; AboutDialog * aboutDialog_; QList objects_; std::vector objectsDescriptors_; Vocabulary vocabulary_; QMap dataRange_; // QTime updateRate_; QTime refreshStartTime_; int lowestRefreshRate_; bool objectsModified_; QMap imagesMap_; TcpServer * tcpServer_; QMap lastObjectsUpdateParameters_; // ParametersMap cv::FeatureDetector * detector_; cv::DescriptorExtractor * extractor_; }; #endif /* MainWindow_H_ */