18#ifndef itkFFTConvolutionImageFilter_h
19#define itkFFTConvolutionImageFilter_h
56template <
typename TInputImage,
57 typename TKernelImage = TInputImage,
58 typename TOutputImage = TInputImage,
59 typename TInternalPrecision =
double>
79 static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
109 using typename Superclass::BoundaryConditionType;
146 float progressWeight);
154 float progressWeight);
161 float progressWeight);
168 float progressWeight);
177 float progressWeight);
215#ifndef ITK_MANUAL_INSTANTIATION
216# include "itkFFTConvolutionImageFilter.hxx"
Abstract base class for the convolution image filters.
Convolve a given image with an arbitrary image kernel using multiplication in the Fourier domain.
void CropOutput(InternalImageType *paddedOutput, ProgressAccumulator *progress, float progressWeight)
typename OutputImageType::IndexType OutputIndexType
KernelSizeType GetKernelRadius() const
typename InternalImageType::SizeType InternalSizeType
void TransformPaddedInput(const InternalImageType *paddedInput, InternalComplexImagePointerType &transformedInput, ProgressAccumulator *progress, float progressWeight)
void PrintSelf(std::ostream &os, Indent indent) const override
void PrepareInput(const InputImageType *input, InternalComplexImagePointerType &preparedInput, ProgressAccumulator *progress, float progressWeight)
typename KernelImageType::SizeType KernelSizeType
typename InternalImageType::IndexType InternalIndexType
typename OutputImageType::PixelType OutputPixelType
typename OutputImageType::RegionType OutputRegionType
bool GetXDimensionIsOdd() const
void PrepareInputs(const InputImageType *input, const KernelImageType *kernel, InternalComplexImagePointerType &preparedInput, InternalComplexImagePointerType &preparedKernel, ProgressAccumulator *progress, float progressWeight)
void PadInput(const InputImageType *input, InternalImagePointerType &paddedInput, ProgressAccumulator *progress, float progressWeight)
typename InputImageType::IndexType InputIndexType
void ProduceOutput(InternalComplexImageType *paddedOutput, ProgressAccumulator *progress, float progressWeight)
typename InputImageType::PixelType InputPixelType
TOutputImage OutputImageType
void GenerateInputRequestedRegion() override
std::complex< TInternalPrecision > InternalComplexType
void GenerateData() override
~FFTConvolutionImageFilter() override=default
InternalSizeType GetFFTPadSize() const
typename KernelImageType::IndexType KernelIndexType
FFTConvolutionImageFilter()
typename OutputImageType::SizeType OutputSizeType
typename InputImageType::RegionType InputRegionType
TInputImage InputImageType
typename InternalComplexImageType::Pointer InternalComplexImagePointerType
typename KernelImageType::RegionType KernelRegionType
void PrepareKernel(const KernelImageType *kernel, InternalComplexImagePointerType &preparedKernel, ProgressAccumulator *progress, float progressWeight)
typename KernelImageType::PixelType KernelPixelType
typename InputSizeType::SizeValueType SizeValueType
TKernelImage KernelImageType
typename InternalImageType::RegionType InternalRegionType
typename InternalImageType::Pointer InternalImagePointerType
typename InputImageType::SizeType InputSizeType
Base class for specialized complex-to-real inverse Fast Fourier Transform.
Templated n-dimensional image class.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
Facilitates progress reporting for filters that wrap around multiple other filters.
Base class for specialized real-to-complex forward Fast Fourier Transform.
SmartPointer< Self > Pointer
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType