Computer Assisted Medical Intervention Tool Kit  version 5.1
 
Loading...
Searching...
No Matches
AnisotropicDiffusion.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 ANISOTROPICDIFFUSION_H
26#define ANISOTROPICDIFFUSION_H
27
28#include <QObject>
29#include <Action.h>
30#include <ImageComponent.h>
31#include <ActionWidget.h>
32
33#include "ITKFilterAPI.h"
34
44 Q_OBJECT
45
46public:
48 enum AnisoDiffType {GRADIENT, CURVATURE};
49
50 // prefers Q_ENUM to Q_ENUMS if possible (Qt >= 5.5)
51 Q_ENUM(AnisoDiffType)
52
53
55
57 virtual ~AnisotropicDiffusion();
58
59public slots:
66
72 AnisotropicDiffusion::AnisoDiffType getDiffusionType();
73
74private:
76 virtual void process(camitk::ImageComponent*);
77
78 vtkSmartPointer<vtkImageData> implementProcess(vtkSmartPointer<vtkImageData> img);
79
80 template <class InputPixelType, class OutputPixelType, const int dim>
81 vtkSmartPointer<vtkImageData> itkProcess(vtkSmartPointer<vtkImageData> img);
82
83 template <class InputPixelType, class OutputPixelType, const int dim>
84 vtkSmartPointer<vtkImageData> itkProcessGradientAnisotropicDiffusion(vtkSmartPointer<vtkImageData> img);
85
86 template <class InputPixelType, class OutputPixelType, const int dim>
87 vtkSmartPointer<vtkImageData> itkProcessCurvatureAnisotropicDiffusion(vtkSmartPointer<vtkImageData> img);
88
89protected:
93};
94
95#endif // ANISOTROPICDIFFUSION_H
#define ITKFILTER_API
Definition ITKFilterAPI.h:8
Perform a anisotropic diffusion on the ImageComponent.
Definition AnisotropicDiffusion.h:43
bool keepOrgVoxelType
Definition AnisotropicDiffusion.h:90
int numberOfIterations
Definition AnisotropicDiffusion.h:91
AnisoDiffType
Define the possible implementations of Gaussian filtering.
Definition AnisotropicDiffusion.h:48
double conductance
Definition AnisotropicDiffusion.h:92
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