ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkRichardsonLucyDeconvolutionImageFilter.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 * https://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 itkRichardsonLucyDeconvolutionImageFilter_h
19#define itkRichardsonLucyDeconvolutionImageFilter_h
20
22
26
27namespace itk
28{
58template <typename TInputImage,
59 typename TKernelImage = TInputImage,
60 typename TOutputImage = TInputImage,
61 typename TInternalPrecision = double>
63 : public IterativeDeconvolutionImageFilter<TInputImage, TKernelImage, TOutputImage, TInternalPrecision>
64{
65public:
66 ITK_DISALLOW_COPY_AND_MOVE(RichardsonLucyDeconvolutionImageFilter);
67
73
75 using InputImageType = TInputImage;
76 using KernelImageType = TKernelImage;
77 using OutputImageType = TOutputImage;
78
80 using typename Superclass::InternalImageType;
85
87 itkNewMacro(Self);
88
90 itkOverrideGetNameOfClassMacro(RichardsonLucyDeconvolutionImageFilter);
91
92protected:
95
96 void
97 Initialize(ProgressAccumulator * progress, float progressWeight, float iterationProgressWeight) override;
98
99 void
100 Iteration(ProgressAccumulator * progress, float iterationProgressWeight) override;
101
102 void
103 Finish(ProgressAccumulator * progress, float progressWeight) override;
104
105 using typename Superclass::FFTFilterType;
106 using typename Superclass::IFFTFilterType;
107
108 void
109 PrintSelf(std::ostream & os, Indent indent) const override;
110
111private:
119
121
123 typename IFFTFilterType::Pointer m_IFFTFilter1{};
125 typename FFTFilterType::Pointer m_FFTFilter{};
128 typename IFFTFilterType::Pointer m_IFFTFilter2{};
130};
131} // end namespace itk
132
133#ifndef ITK_MANUAL_INSTANTIATION
134# include "itkRichardsonLucyDeconvolutionImageFilter.hxx"
135#endif
136
137#endif
Presents each pixel of a complex image as its complex conjugate.
HalfHermitianToRealInverseFFTImageFilter< InternalComplexImageType, InternalImageType > IFFTFilterType
RealToHalfHermitianForwardFFTImageFilter< InternalImageType, InternalComplexImageType > FFTFilterType
Control indentation during Print() invocation.
Definition itkIndent.h:50
Pixel-wise multiplication of two images.
Facilitates progress reporting for filters that wrap around multiple other filters.
IterativeDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision > Superclass
DivideOrZeroOutImageFilter< InternalImageType > DivideFilterType
MultiplyImageFilter< InternalComplexImageType > ComplexMultiplyType
void Finish(ProgressAccumulator *progress, float progressWeight) override
void Initialize(ProgressAccumulator *progress, float progressWeight, float iterationProgressWeight) override
void Iteration(ProgressAccumulator *progress, float iterationProgressWeight) override
ComplexConjugateImageAdaptor< InternalComplexImageType > ConjugateAdaptorType
MultiplyImageFilter< InternalComplexImageType, ConjugateAdaptorType, InternalComplexImageType > ComplexConjugateMultiplyType
void PrintSelf(std::ostream &os, Indent indent) const override
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....