Computer Assited Medical Intervention Tool Kit  version 3.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MorphologicalOperators.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * $CAMITK_LICENCE_BEGIN$
3  *
4  * CamiTK - Computer Assisted Medical Intervention ToolKit
5  * (c) 2001-2014 UJF-Grenoble 1, CNRS, TIMC-IMAG UMR 5525 (GMCAO)
6  *
7  * Visit http://camitk.imag.fr for more information
8  *
9  * This file is part of CamiTK.
10  *
11  * CamiTK is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * CamiTK is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License version 3 for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22  *
23  * $CAMITK_LICENCE_END$
24  ****************************************************************************/
25 #ifndef MORPHOLOGICALOPERATORS_H
26 #define MORPHOLOGICALOPERATORS_H
27 
28 #include <QObject>
29 #include <Action.h>
30 #include <ImageComponent.h>
31 #include <ActionWidget.h>
32 
33 #include <itkImage.h>
34 
44  Q_OBJECT
45 
47  Q_ENUMS( MorphoType )
48  Q_ENUMS( MorphoOperation )
49 
50 public:
53 
56 
59 
61  MorphoType getMorphoType() const ;
62 
65 
67  virtual ~MorphologicalOperators();
68 
69 public slots:
75  virtual ApplyStatus apply();
76 
77 
78 private:
80  virtual void process(camitk::ImageComponent *);
81 
82 private:
83  vtkSmartPointer<vtkImageData> implementProcess(vtkSmartPointer<vtkImageData> img);
84 
85  template <class InputPixelType, class OutputPixelType, const int dim>
86  vtkSmartPointer<vtkImageData> itkProcess(vtkSmartPointer<vtkImageData> img);
87 
88  template <class InputPixelType, class OutputPixelType, const int dim>
89  vtkSmartPointer<vtkImageData> binaryErosionFilter(vtkSmartPointer<vtkImageData> img);
90  template <class InputPixelType, class OutputPixelType, const int dim>
91  vtkSmartPointer<vtkImageData> binaryDilationFilter(vtkSmartPointer<vtkImageData> img);
92  template <class InputPixelType, class OutputPixelType, const int dim>
93  vtkSmartPointer<vtkImageData> binaryOpeningFilter(vtkSmartPointer<vtkImageData> img);
94  template <class InputPixelType, class OutputPixelType, const int dim>
95  vtkSmartPointer<vtkImageData> binaryClosureFilter(vtkSmartPointer<vtkImageData> img);
96 
97  template <class InputPixelType, class OutputPixelType, const int dim>
98  vtkSmartPointer<vtkImageData> greyLevelErosionFilter(vtkSmartPointer<vtkImageData> img);
99  template <class InputPixelType, class OutputPixelType, const int dim>
100  vtkSmartPointer<vtkImageData> greyLevelDilationFilter(vtkSmartPointer<vtkImageData> img);
101  template <class InputPixelType, class OutputPixelType, const int dim>
102  vtkSmartPointer<vtkImageData> greyLevelOpeningFilter(vtkSmartPointer<vtkImageData> img);
103  template <class InputPixelType, class OutputPixelType, const int dim>
104  vtkSmartPointer<vtkImageData> greyLevelClosureFilter(vtkSmartPointer<vtkImageData> img);
105 
106 
107 
108 protected:
113 
114  QString suffix;
115 
116 };
117 
118 Q_DECLARE_METATYPE(MorphologicalOperators::MorphoType)
119 Q_DECLARE_METATYPE(MorphologicalOperators::MorphoOperation)
120 #endif // MORPHOLOGICALOPERATORS_H
vtkSmartPointer< vtkImageData > greyLevelClosureFilter(vtkSmartPointer< vtkImageData > img)
Definition: MorphologicalOperators.cpp:598
vtkSmartPointer< vtkImageData > binaryClosureFilter(vtkSmartPointer< vtkImageData > img)
Definition: MorphologicalOperators.cpp:316
MorphoType typeOfOperation
Morphological operators properties.
Definition: MorphologicalOperators.h:110
vtkSmartPointer< vtkImageData > greyLevelErosionFilter(vtkSmartPointer< vtkImageData > img)
Definition: MorphologicalOperators.cpp:470
MorphoOperation operation
Definition: MorphologicalOperators.h:111
MorphoOperation getMorphoOperation() const
Get the morphological operation selected.
Definition: MorphologicalOperators.cpp:94
Action class is an abstract class that enables you to build a action (generally on a component)...
Definition: Action.h:184
MorphoType getMorphoType() const
Get the morphological type of operation.
Definition: MorphologicalOperators.cpp:90
vtkSmartPointer< vtkImageData > binaryDilationFilter(vtkSmartPointer< vtkImageData > img)
Definition: MorphologicalOperators.cpp:252
int structuringElementSize
Definition: MorphologicalOperators.h:112
Definition: MorphologicalOperators.h:55
Definition: MorphologicalOperators.h:55
vtkSmartPointer< vtkImageData > implementProcess(vtkSmartPointer< vtkImageData > img)
This class describes what is a generic Action extension.
Definition: ActionExtension.h:61
MorphoType
Enumerations.
Definition: MorphologicalOperators.h:52
vtkSmartPointer< vtkImageData > itkProcess(vtkSmartPointer< vtkImageData > img)
Definition: MorphologicalOperators.cpp:125
The manager of the Image Volume data.
Definition: ImageComponent.h:73
vtkSmartPointer< vtkImageData > greyLevelDilationFilter(vtkSmartPointer< vtkImageData > img)
Definition: MorphologicalOperators.cpp:535
virtual ApplyStatus apply()
this method is automatically called when the action is triggered.
Definition: MorphologicalOperators.cpp:99
vtkSmartPointer< vtkImageData > greyLevelOpeningFilter(vtkSmartPointer< vtkImageData > img)
Definition: MorphologicalOperators.cpp:673
vtkSmartPointer< vtkImageData > binaryOpeningFilter(vtkSmartPointer< vtkImageData > img)
Definition: MorphologicalOperators.cpp:392
Definition: MorphologicalOperators.h:55
QString suffix
Definition: MorphologicalOperators.h:114
Perform some morphological operators such as opening, closing ...
Definition: MorphologicalOperators.h:43
virtual ~MorphologicalOperators()
Default Destructor.
Definition: MorphologicalOperators.cpp:86
vtkSmartPointer< vtkImageData > binaryErosionFilter(vtkSmartPointer< vtkImageData > img)
Definition: MorphologicalOperators.cpp:187
ApplyStatus
describes what happened during the application of an algorithm (i.e. results of the apply method) ...
Definition: Action.h:196
MorphologicalOperators(camitk::ActionExtension *)
Default Constructor.
Definition: MorphologicalOperators.cpp:49
Definition: MorphologicalOperators.h:52
Definition: MorphologicalOperators.h:55
virtual void process(camitk::ImageComponent *)
helper method to simplify the target component processing
Definition: MorphologicalOperators.cpp:107
Definition: MorphologicalOperators.h:52
MorphoOperation
Define the possible morphological operations.
Definition: MorphologicalOperators.h:55