ITK  5.2.0
Insight Toolkit
itkAnisotropicDiffusionImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkAnisotropicDiffusionImageFilter_h
19 #define itkAnisotropicDiffusionImageFilter_h
20 
23 #include "itkNumericTraits.h"
24 
25 namespace itk
26 {
72 template <typename TInputImage, typename TOutputImage>
73 class ITK_TEMPLATE_EXPORT AnisotropicDiffusionImageFilter
74  : public DenseFiniteDifferenceImageFilter<TInputImage, TOutputImage>
75 {
76 public:
77  ITK_DISALLOW_COPY_AND_MOVE(AnisotropicDiffusionImageFilter);
78 
84 
87 
89  using InputImageType = typename Superclass::InputImageType;
90  using OutputImageType = typename Superclass::OutputImageType;
91  using UpdateBufferType = typename Superclass::UpdateBufferType;
92 
95  static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
96 
99  using PixelType = typename Superclass::PixelType;
101 
103  itkSetMacro(TimeStep, TimeStepType);
104  itkGetConstMacro(TimeStep, TimeStepType);
106 
109  itkSetMacro(ConductanceParameter, double);
110  itkGetConstMacro(ConductanceParameter, double);
112 
115  itkSetMacro(ConductanceScalingUpdateInterval, unsigned int);
116  itkGetConstMacro(ConductanceScalingUpdateInterval, unsigned int);
118 
121  itkSetMacro(ConductanceScalingParameter, double);
122  itkGetConstMacro(ConductanceScalingParameter, double);
124 
132  void
134  {
135  m_FixedAverageGradientMagnitude = a;
136  this->Modified();
137  m_GradientMagnitudeIsFixed = true;
138  }
140 
141  itkGetConstMacro(FixedAverageGradientMagnitude, double);
142 
143 protected:
145  ~AnisotropicDiffusionImageFilter() override = default;
146  void
147  PrintSelf(std::ostream & os, Indent indent) const override;
148 
151  // virtual bool Halt();
152 
154  void
155  InitializeIteration() override;
156 
158 
159 private:
164 
166 };
167 } // namespace itk
168 
169 #ifndef ITK_MANUAL_INSTANTIATION
170 # include "itkAnisotropicDiffusionImageFilter.hxx"
171 #endif
172 
173 #endif
itk::AnisotropicDiffusionImageFilter::m_FixedAverageGradientMagnitude
double m_FixedAverageGradientMagnitude
Definition: itkAnisotropicDiffusionImageFilter.h:163
itk::AnisotropicDiffusionImageFilter::m_ConductanceScalingParameter
double m_ConductanceScalingParameter
Definition: itkAnisotropicDiffusionImageFilter.h:161
itkAnisotropicDiffusionFunction.h
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::AnisotropicDiffusionImageFilter::m_ConductanceParameter
double m_ConductanceParameter
Definition: itkAnisotropicDiffusionImageFilter.h:160
itk::DenseFiniteDifferenceImageFilter
Definition: itkDenseFiniteDifferenceImageFilter.h:69
itk::DenseFiniteDifferenceImageFilter::UpdateBufferType
OutputImageType UpdateBufferType
Definition: itkDenseFiniteDifferenceImageFilter.h:102
itk::ImageSource
Base class for all process objects that output image data.
Definition: itkImageSource.h:67
itk::AnisotropicDiffusionImageFilter::SetFixedAverageGradientMagnitude
void SetFixedAverageGradientMagnitude(double a)
Definition: itkAnisotropicDiffusionImageFilter.h:133
itk::AnisotropicDiffusionImageFilter::m_TimeStep
TimeStepType m_TimeStep
Definition: itkAnisotropicDiffusionImageFilter.h:165
itk::ImageToImageFilter::InputImageType
TInputImage InputImageType
Definition: itkImageToImageFilter.h:129
itk::DenseFiniteDifferenceImageFilter::TimeStepType
typename Superclass::TimeStepType TimeStepType
Definition: itkDenseFiniteDifferenceImageFilter.h:99
itkDenseFiniteDifferenceImageFilter.h
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::AnisotropicDiffusionImageFilter::m_GradientMagnitudeIsFixed
bool m_GradientMagnitudeIsFixed
Definition: itkAnisotropicDiffusionImageFilter.h:157
itk::ProcessObject
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Definition: itkProcessObject.h:138
itkNumericTraits.h
itk::DenseFiniteDifferenceImageFilter::PixelType
typename Superclass::PixelType PixelType
Definition: itkDenseFiniteDifferenceImageFilter.h:96
itk::AnisotropicDiffusionImageFilter::m_ConductanceScalingUpdateInterval
unsigned int m_ConductanceScalingUpdateInterval
Definition: itkAnisotropicDiffusionImageFilter.h:162
itk::ImageSource::OutputImageType
TOutputImage OutputImageType
Definition: itkImageSource.h:90
itk::AnisotropicDiffusionImageFilter
Definition: itkAnisotropicDiffusionImageFilter.h:73