18 #ifndef itkMaskedFFTNormalizedCorrelationImageFilter_h
19 #define itkMaskedFFTNormalizedCorrelationImageFilter_h
139 template <
typename TInputImage,
typename TOutputImage,
typename TMaskImage=TInputImage >
160 static constexpr
unsigned int ImageDimension = TOutputImage::ImageDimension;
209 itkSetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
210 itkGetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
214 itkGetMacro(RequiredFractionOfOverlappingPixels,
RealPixelType);
215 itkSetClampMacro(RequiredFractionOfOverlappingPixels,
RealPixelType, 0.0f, 1.0f);
221 #ifdef ITK_USE_CONCEPT_CHECKING
232 Self::SetPrimaryInputName(
"FixedImage");
235 Self::AddRequiredInputName(
"MovingImage", 1);
238 Self::AddOptionalInputName(
"FixedImageMask", 2);
241 Self::AddOptionalInputName(
"MovingImageMask", 3);
243 m_RequiredNumberOfOverlappingPixels = 0;
244 m_RequiredFractionOfOverlappingPixels = 0;
245 m_MaximumNumberOfOverlappingPixels = 0;
246 m_AccumulatedProgress = 0.0;
249 void PrintSelf(std::ostream& os,
Indent indent)
const override;
252 void VerifyInputInformation() ITKv5_CONST override;
255 void GenerateData() override;
262 void GenerateInputRequestedRegion() override;
268 void GenerateOutputInformation() override;
270 void EnlargeOutputRequestedRegion(
DataObject *output ) override;
272 typename TMaskImage::Pointer PreProcessMask( const InputImageType * inputImage, const MaskImageType * inputMask );
274 typename TInputImage::Pointer PreProcessImage( const InputImageType * inputImage, const MaskImageType * inputMask );
276 template< typename LocalInputImageType >
277 typename LocalInputImageType::Pointer RotateImage( LocalInputImageType * inputImage );
279 template< typename LocalInputImageType, typename LocalOutputImageType >
280 typename LocalOutputImageType::Pointer CalculateForwardFFT( LocalInputImageType * inputImage, InputSizeType & FFTImageSize );
282 template< typename LocalInputImageType, typename LocalOutputImageType >
283 typename LocalOutputImageType::Pointer CalculateInverseFFT( LocalInputImageType * inputImage, RealSizeType & combinedImageSize );
286 template< typename LocalInputImageType, typename LocalOutputImageType >
287 typename LocalOutputImageType::Pointer ElementProduct( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
289 template< typename LocalInputImageType >
290 typename LocalInputImageType::Pointer ElementQuotient( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
292 template< typename LocalInputImageType >
293 typename LocalInputImageType::Pointer ElementSubtraction( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
295 template< typename LocalInputImageType >
296 typename LocalInputImageType::Pointer ElementPositive( LocalInputImageType * inputImage );
298 template< typename LocalInputImageType, typename LocalOutputImageType >
299 typename LocalOutputImageType::Pointer ElementRound( LocalInputImageType * inputImage );
304 int FactorizeNumber(
int n );
308 int FindClosestValidDimension(
int n );
310 template< typename LocalInputImageType >
311 double CalculatePrecisionTolerance( LocalInputImageType * inputImage );
328 const
unsigned int m_TotalForwardAndInverseFFTs{12};
335 #ifndef ITK_MANUAL_INSTANTIATION
336 #include "itkMaskedFFTNormalizedCorrelationImageFilter.hxx"
typename RealImageType::SizeType RealSizeType
typename OutputImageType::Pointer OutputImagePointer
typename RealImageType::PointType RealPointType
unsigned long SizeValueType
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
itk::SizeValueType SizeValueType
Base class for all process objects that output image data.
TInputImage InputImageType
typename RealImageType::RegionType RealRegionType
typename InputImageType::Pointer InputImagePointer
OutputPixelType RealPixelType
ImageBaseType::SizeType SizeType
ImageBaseType::IndexType IndexType
TOutputImage OutputImageType
float m_AccumulatedProgress
typename MaskImageType::Pointer MaskImagePointer
typename RealImageType::Pointer RealImagePointer
typename InputImageType::SizeType InputSizeType
typename RealImageType::IndexType RealIndexType
typename FFTImageType::Pointer FFTImagePointer
Base class for filters that take an image as input and produce an image as output.
typename InputImageType::RegionType InputRegionType
Control indentation during Print() invocation.
ImageBaseType::PointType PointType
Calculate masked normalized cross correlation using FFTs.
ImageBaseType::RegionType RegionType
#define itkConceptMacro(name, concept)
typename InputImageType::ConstPointer InputImageConstPointer
typename OutputImageType::PixelType OutputPixelType
Base class for all data objects in ITK.
TInputImage MaskImageType
Templated n-dimensional image class.
MaskedFFTNormalizedCorrelationImageFilter()