#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QImage>
#include <QLabel>
#include <QFileDialog>
#include <QPen>
#include <QColor>
#include "bilinear.h"
#include <iostream>
#include <QString>
#include "math.h"
#include <QRect>
#include <QRgb>
#include <QGraphicsScene>
#include "filters.h"
#include "gauss.h"
#include "matrix.h"
#include "dialog.h"
#include "ui_dialog.h"
#include <QGridLayout>
#include "mygv.h"

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    void filtered(void);

    QPixmap * pix;
    MyGV * graph;
    QGraphicsScene * scene;
    ~MainWindow();

public slots:
    void openFile(void);
    void saveFile(void);
    void closeFile(void);
    void drawRect(int x, int y);
    void chosePart(void);
    void rotateImg(void);
    void zoomImg(void);
    void greyImg(void);
    void gaussImg(void);
    void sharpImg(void);
    void sharp2Img(void);
    void myFilter(void);
    void level(void);
    void levelCh(void);
    void reset(void);
    void getArray(void);
    void medImg(void);
    void glassImg(void);

private:
    QImage * img;
    QImage * part;
    QRect rect;
    int x0,y0,x1,y1,size;
    double a[50][50];
    Ui::MainWindow *ui;
    void buildImage(void);
    void cropImageM(double mul);
    void cropImageD(double mul);
    void showImg(QImage qi);
    void draw();
    Dialog * d;

};

#endif // MAINWINDOW_H
