#ifndef UI_CALIBRATION_MAIN_H_
#define UI_CALIBRATION_MAIN_H_
#include <QHBoxLayout>
#include <QFormLayout>
#include <QPushButton>
#include <QListWidget>
#include <QCheckBox>
#include <QSpinBox>
#include <QWidget>
#include <QLabel>
struct Image {
Image() {}
Image(QImage image) : image(image), distorted_pixmap(QPixmap::fromImage(image)) {}
QImage image;
QVector<QPointF> distorted_corners;
QVector<QPointF> corrected_corners;
QPixmap distorted_pixmap;
QPixmap corrected_pixmap;
};
class View : public QWidget {
public:
View();
QSize sizeHint() const;
void setImage(Image image,bool correct=false);
protected:
void paintEvent(QPaintEvent*);
private:
QVector<QPointF> corners;
QPixmap pixmap;
};
#include <QDialog>
#include <QFileSystemModel>
#include <QTreeView>
class FileDialog : public QDialog {
Q_OBJECT
public:
FileDialog(QWidget*,QString);
QStringList selectedFiles();
private:
QFileSystemModel fileSystem;
QTreeView view;
};
class MainWindow : public QWidget {
Q_OBJECT
public:
MainWindow();
~MainWindow();
public slots:
void open();
void open(QStringList);
void addImage();
void stop();
void showImage(int);
void calibrate();
void process();
void toggleDistort();
private:
QHBoxLayout hbox;
QFormLayout side;
QPushButton source;
QListWidget list;
QSpinBox width;
QSpinBox height;
QDoubleSpinBox size;
QCheckBox correct;
QLabel focalLength;
QLabel principalPoint;
QLabel radialDistortion[3];
QLabel tangentialDistortion[2];
View view;
QString path;
QList<Image> images;
Image preview;
int current;
bool play;
double camera[9];
double coefficients[5];
};
#endif