#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QFileDialog>
#include <QDebug>
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle)
#include <vtkSmartPointer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkJPEGReader.h>
#include <vtkImageData.h>
#include <vtkImageLuminance.h>
#include <vtkImageActor.h>
#include <vtkImageThreshold.h>
#include <vtkInteractorStyleImage.h>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void openFileSlot();
private:
vtkSmartPointer<vtkRenderer> pSrcGradientRenderer;
vtkSmartPointer<vtkRenderer> pGradientRenderer;
vtkSmartPointer<vtkRenderer> pSrcSobelRenderer;
vtkSmartPointer<vtkRenderer> pSobelXRenderer;
vtkSmartPointer<vtkRenderer> pSobelYRenderer;
vtkSmartPointer<vtkRenderer> pSobelRenderer;
vtkSmartPointer<vtkRenderer> pSrcCandyRenderer;
vtkSmartPointer<vtkRenderer> pCandyRenderer;
vtkSmartPointer<vtkRenderer> pSrcLaplaceRenderer;
vtkSmartPointer<vtkRenderer> pLaplaceRenderer;
vtkSmartPointer<vtkInteractorStyleImage> pImageStyle;
vtkSmartPointer<vtkJPEGReader> pJpegReader;
vtkSmartPointer<vtkImageActor> pSrcGradientImageActor;
vtkSmartPointer<vtkImageActor> pGradientImageActor;
vtkSmartPointer<vtkImageActor> pSrcSobelImageActor;
vtkSmartPointer<vtkImageActor> pSobelXImageActor;
vtkSmartPointer<vtkImageActor> pSobelYImageActor;
vtkSmartPointer<vtkImageActor> pSobelImageActor;
vtkSmartPointer<vtkImageActor> pSrcCandyImageActor;
vtkSmartPointer<vtkImageActor> pCandyImageActor;
vtkSmartPointer<vtkImageActor> pSrcLaplaceImageActor;
vtkSmartPointer<vtkImageActor> pLaplaceImageActor;
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <vtkImageGradient.h>
#include <vtkImageMagnitude.h>
#include <vtkImageShiftScale.h>
#include <vtkImageSobel2D.h>
#include <vtkImageExtractComponents.h>
#include <vtkImageMathematics.h>
#include <vtkImageLuminance.h>
#include <vtkImageCast.h>
#include <vtkImageGaussianSmooth.h>
#include <vtkImageNonMaximumSuppression.h>
#include <vtkImageConstantPad.h>
#include <vtkImageToStructuredPoints.h>
#include <vtkLinkEdgels.h>
#include <vtkThreshold.h>
#include <vtkGeometryFilter.h>
#include <vtkSubPixelPositionEdgels.h>
#include <vtkStripper.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkProperty.h>
#include <vtkImageLaplacian.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
{
pSrcGradientRenderer = vtkSmartPointer<vtkRenderer>::New();
pSrcGradientRenderer->SetBackground(1.0, 0, 0);
pSrcGradientRenderer->SetViewport(0, 0, 0.5, 0.25);
pGradientRenderer = vtkSmartPointer<vtkRenderer>::New();
pGradientRenderer->SetBackground(1.0, 0, 0);
pGradientRenderer->SetViewport(0.5, 0, 1.0, 0.25);
}
{
pSrcSobelRenderer = vtkSmartPointer<vtkRenderer>::New();
pSrcSobelRenderer->SetBackground(0.0, 1.0, 0.0);
pSrcSobelRenderer->SetViewport(0, 0.25, 0.25, 0.5);
pSobelXRenderer = vtkSmartPointer<vtkRenderer>::New();
pSobelXRenderer->SetBackground(0.0, 1.0, 0.0);
pSobelXRenderer->SetViewport(0.25, 0.25, 0.5, 0.5);
pSobelYRenderer = vtkSmartPointer<vtk