Computer Assisted Medical Intervention Tool Kit  version 5.1
 
Loading...
Searching...
No Matches
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-2023 Univ. Grenoble Alpes, CNRS, Grenoble INP, TIMC, 38000 Grenoble, France
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 "ITKFilterAPI.h"
34
35#include <itkImage.h>
36
46 Q_OBJECT
47
48public:
50 enum MorphoType {GREY_LEVEL, BINARY};
51
52 Q_ENUM(MorphoType)
53
54
55 enum MorphoOperation {EROSION, DILATION, OPENING, CLOSING};
56
57 Q_ENUM(MorphoOperation)
58
59
61
63 MorphoType getMorphoType() const ;
64
66 MorphoOperation getMorphoOperation() const ;
67
70
71public slots:
78
79private:
81 virtual void process(camitk::ImageComponent*);
82
83private:
84 vtkSmartPointer<vtkImageData> implementProcess(vtkSmartPointer<vtkImageData> img);
85
86 template <class InputPixelType, class OutputPixelType, const int dim>
87 vtkSmartPointer<vtkImageData> itkProcess(vtkSmartPointer<vtkImageData> img);
88
89 template <class InputPixelType, class OutputPixelType, const int dim>
90 vtkSmartPointer<vtkImageData> binaryErosionFilter(vtkSmartPointer<vtkImageData> img);
91 template <class InputPixelType, class OutputPixelType, const int dim>
92 vtkSmartPointer<vtkImageData> binaryDilationFilter(vtkSmartPointer<vtkImageData> img);
93 template <class InputPixelType, class OutputPixelType, const int dim>
94 vtkSmartPointer<vtkImageData> binaryOpeningFilter(vtkSmartPointer<vtkImageData> img);
95 template <class InputPixelType, class OutputPixelType, const int dim>
96 vtkSmartPointer<vtkImageData> binaryClosureFilter(vtkSmartPointer<vtkImageData> img);
97
98 template <class InputPixelType, class OutputPixelType, const int dim>
99 vtkSmartPointer<vtkImageData> greyLevelErosionFilter(vtkSmartPointer<vtkImageData> img);
100 template <class InputPixelType, class OutputPixelType, const int dim>
101 vtkSmartPointer<vtkImageData> greyLevelDilationFilter(vtkSmartPointer<vtkImageData> img);
102 template <class InputPixelType, class OutputPixelType, const int dim>
103 vtkSmartPointer<vtkImageData> greyLevelOpeningFilter(vtkSmartPointer<vtkImageData> img);
104 template <class InputPixelType, class OutputPixelType, const int dim>
105 vtkSmartPointer<vtkImageData> greyLevelClosureFilter(vtkSmartPointer<vtkImageData> img);
106
107
108
109protected:
114
115 QString suffix;
116
117};
118
119#endif // MORPHOLOGICALOPERATORS_H
#define ITKFILTER_API
Definition ITKFilterAPI.h:8
Perform some morphological operators such as opening, closing ...
Definition MorphologicalOperators.h:45
MorphoOperation
Define the possible morphological operations.
Definition MorphologicalOperators.h:55
MorphoOperation operation
Definition MorphologicalOperators.h:112
MorphoType
Define the possible types of morphological operations.
Definition MorphologicalOperators.h:50
QString suffix
Definition MorphologicalOperators.h:115
MorphoType typeOfOperation
Morphological operators properties.
Definition MorphologicalOperators.h:111
int structuringElementSize
Definition MorphologicalOperators.h:113
This class describes what is a generic Action extension.
Definition ActionExtension.h:57
Action class is an abstract class that enables you to build a action (generally on a component).
Definition Action.h:208
ApplyStatus
describes what happened during the application of an algorithm (i.e. results of the apply method)
Definition Action.h:224
virtual camitk::Action::ApplyStatus apply()=0
This method is called when the action has to be applied on the target list (get the target lists usin...
The manager of the Image Volume data.
Definition ImageComponent.h:77