VMTK
vtkvmtkAnisotropicDiffusionImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkAnisotropicDiffusionImageFilter.h,v $
5 Language: C++
6 
7  Copyright (c) Luca Antiga. All rights reserved.
8  See LICENSE file for details.
9 
10  Portions of this code are covered under the VTK copyright.
11  See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm
12  for details.
13 
14  Portions of this code are covered under the ITK copyright.
15  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm
16  for details.
17 
18  This software is distributed WITHOUT ANY WARRANTY; without even
19  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
20  PURPOSE. See the above copyright notices for more information.
21  Note: this class was contributed by
22  Kurt Sansom
23  https://github.com/kayarre
24 
25 =========================================================================*/
35 #ifndef __vtkvmtkAnisotropicDiffusionImageFilter_h
36 #define __vtkvmtkAnisotropicDiffusionImageFilter_h
37 
38 #include "vtkSimpleImageToImageFilter.h"
39 #include "vtkvmtkWin32Header.h"
40 
41 class VTK_VMTK_SEGMENTATION_EXPORT vtkvmtkAnisotropicDiffusionImageFilter : public vtkSimpleImageToImageFilter
42 {
43  public:
45  vtkTypeMacro(vtkvmtkAnisotropicDiffusionImageFilter, vtkSimpleImageToImageFilter);
46 
47  vtkGetMacro(NumberOfIterations,int);
48  vtkSetMacro(NumberOfIterations,int);
49 
50  vtkGetMacro(TimeStep,double);
51  vtkSetMacro(TimeStep,double);
52 
53  vtkGetMacro(Conductance,double);
54  vtkSetMacro(Conductance,double);
55 
56 
57 protected:
58 
61 
62  virtual void SimpleExecute(vtkImageData* input, vtkImageData* output) VTK_OVERRIDE;
63 
64 private:
65  template< class TImage >
66  int FilterImage( vtkImageData*, vtkImageData*, typename TImage::Pointer );
67 
68  template< int VDimension >
69  int FilterScalarImage( vtkImageData* , vtkImageData* , int );
70 
72  void operator=(const vtkvmtkAnisotropicDiffusionImageFilter&); // Not implemented.
73 
74  int NumberOfIterations;
75  double TimeStep;
76  double Conductance;
77 
78 };
79 
80 #endif
81 
Wrapper class around itk::GradientAnisotropicDiffusionImageFilter.