-
Notifications
You must be signed in to change notification settings - Fork 0
/
mainwindow.h
69 lines (56 loc) · 1.49 KB
/
mainwindow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
/*
* ADDING A NEW APPROXIMATOR
* you need two objects
* - settings for the approximator
* - the approximator itself
* add your settings object to the constructor
* add your files to the .pro file
*/
#include <QMainWindow>
#include <QLabel>
#include <QImage>
#include <QPixmap>
#include <QPushButton>
#include <QGridLayout>
#include <QFileDialog>
#include <stdio.h>
#include <QHBoxLayout>
#include <QTabWidget>
#include <QProgressBar>
#include <QThread>
#include "imagelabel.h"
#include "circleapproximator.h"
#include "circleapproximator_deltaselector.h"
#include "kernelapproximator.h"
//#include "keypoint.h"
class MainWindow : public QMainWindow{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void selectImage();
void toggleApproximator(); // starts/stops the approximator thread
void updateProgress(QImage,double percentage);
void displayImage(QImage);
void finalImageApproximation(QImage);
void saveImageDialog();
private:
enum STATE{IDLE,APPROXIMATING};
STATE currentState;
void setState(STATE);
void constructGUI();
void addApproximators();
QGridLayout *mainLayout;
QLabel *imageLocationLabel;
QPushButton *imageLocationButton,*saveButton,*startButton;
ImageLabel *imageDisplay;
QProgressBar *progressBar;
QTabWidget *settingsMenu;
std::vector<BaseSettings*> settingsObjects;
QImage displayedImage;
QThread workerThread; // runs the wanted approximator in a different thread
};
#endif // MAINWINDOW_H