forked from coconetlero/Qt-ITK-VTK-Image-Viewer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathimagewidget.h
More file actions
129 lines (93 loc) · 2.88 KB
/
imagewidget.h
File metadata and controls
129 lines (93 loc) · 2.88 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*
* File: imagewidget.h
* Author: zian
*
* Created on 19 de septiembre de 2011, 19:34
*/
#ifndef IMAGEWIDGET_H
#define IMAGEWIDGET_H
#include <QtGui>
#include <QWidget>
#include <QVTKWidget.h>
#include <vtkRenderer.h>
#include <vtkImageActor.h>
#include <vtkRenderWindow.h>
#include <vtkSmartPointer.h>
#include <vtkImageData.h>
#include <vtkCamera.h>
#include <itkImage.h>
#include <itkRGBPixel.h>
#include "external/itkVTKImageToImageFilter.h"
#include "external/itkImageToVTKImageFilter.h"
typedef itk::RGBPixel< unsigned char > RGBPixelType;
typedef itk::Image< unsigned char, 2 > ImageType;
typedef itk::Image< float, 2 > FloatImageType;
typedef itk::Image< RGBPixelType, 2 > RGBImageType;
typedef itk::VTKImageToImageFilter <ImageType> itkConnectorType;
typedef itk::ImageToVTKImageFilter <ImageType> vtkConnectorType;
typedef itk::ImageToVTKImageFilter <RGBImageType> RGBVtkConnectorType;
typedef itk::ImageToVTKImageFilter <FloatImageType> vtkFloatConnectorType;
class ImageWidget : public QWidget {
Q_OBJECT
public:
/**
* Constructor for this ImageWidget
*/
ImageWidget(QWidget *parent = 0);
/**
* Destructor for this ImageWidget
*/
virtual ~ImageWidget();
/**
* load an display an image from file
*/
void open();
/**
* load an display an image from file
*/
void openWithITK();
/**
* Apply a median fiter to the itkImage
*/
void medianFilter();
/**
* Apply a gradient anisotropic diffusion filter to an itkImage
*/
void gradientAnisotropicDiffusionFilter();
private:
QVTKWidget *qvtkWidget;
/** The image displayed for this window */
ImageType::Pointer itkImage;
RGBImageType::Pointer rgbItkImage;
/** The VTK image to display in this window */
vtkSmartPointer <vtkImageData> vtkImage;
vtkSmartPointer<vtkImageActor> actor;
vtkSmartPointer<vtkRenderer> renderer;
vtkSmartPointer<vtkRenderWindow> renderWindow;
vtkSmartPointer<vtkRenderWindowInteractor> interactor;
vtkSmartPointer<vtkCamera> camera;
/** The type of the image components RGB, scalar, etc */
std::string pixelType;
/** The type of the image pixels */
std::string imageType;
/** The number of the image dimensions */
size_t numDimensions;
/** flag for a flipped image */
bool isFliped;
/**
* to display the loaded image in the QVTKwidget
* @param image vtkImageData
*/
void displayImage(vtkImageData *image);
/**
* Set itkImage converting the vtkImage to a ITK image
*/
void setITKImageFromVTK();
/**
* extract some image properties as, pixel type, image type and number of dimensions
* @param fileName path to the file
* @param vervose if print the standar out
*/
void setImageProperties(std::string fileName, bool vervose);
};
#endif /* IMAGEWIDGET_H */