18 #ifndef itkMaskedFFTNormalizedCorrelationImageFilter_h
19 #define itkMaskedFFTNormalizedCorrelationImageFilter_h
139 template <
typename TInputImage,
typename TOutputImage,
typename TMaskImage=TInputImage >
158 itkStaticConstMacro(ImageDimension,
unsigned int,
159 TOutputImage::ImageDimension);
190 this->SetNthInput(0, const_cast<InputImageType *>(input) );
201 this->SetNthInput(1, const_cast<InputImageType *>(input) );
212 this->SetNthInput(2, const_cast<MaskImageType *>(input) );
223 this->SetNthInput(3, const_cast<MaskImageType *>(input) );
232 itkSetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
233 itkGetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
237 itkGetMacro(RequiredFractionOfOverlappingPixels,RealPixelType);
238 itkSetClampMacro(RequiredFractionOfOverlappingPixels, RealPixelType, 0.0f, 1.0f);
244 #ifdef ITK_USE_CONCEPT_CHECKING
254 this->SetNumberOfRequiredInputs(2);
255 m_RequiredNumberOfOverlappingPixels = 0;
256 m_RequiredFractionOfOverlappingPixels = 0;
257 m_MaximumNumberOfOverlappingPixels = 0;
258 m_AccumulatedProgress = 0.0;
264 void VerifyInputInformation() ITK_OVERRIDE;
267 void GenerateData() ITK_OVERRIDE;
274 virtual
void GenerateInputRequestedRegion() ITK_OVERRIDE;
280 void GenerateOutputInformation() ITK_OVERRIDE;
282 void EnlargeOutputRequestedRegion(
DataObject *output ) ITK_OVERRIDE;
284 typename TMaskImage::
Pointer PreProcessMask( const InputImageType * inputImage, const MaskImageType * inputMask );
286 typename TInputImage::
Pointer PreProcessImage( const InputImageType * inputImage, const MaskImageType * inputMask );
288 template< typename LocalInputImageType >
289 typename LocalInputImageType::
Pointer RotateImage( LocalInputImageType * inputImage );
291 template< typename LocalInputImageType, typename LocalOutputImageType >
292 typename LocalOutputImageType::
Pointer CalculateForwardFFT( LocalInputImageType * inputImage, InputSizeType & FFTImageSize );
294 template< typename LocalInputImageType, typename LocalOutputImageType >
295 typename LocalOutputImageType::
Pointer CalculateInverseFFT( LocalInputImageType * inputImage, RealSizeType & combinedImageSize );
298 template< typename LocalInputImageType, typename LocalOutputImageType >
299 typename LocalOutputImageType::
Pointer ElementProduct( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
301 template< typename LocalInputImageType >
302 typename LocalInputImageType::
Pointer ElementQuotient( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
304 template< typename LocalInputImageType >
305 typename LocalInputImageType::
Pointer ElementSubtraction( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
307 template< typename LocalInputImageType >
308 typename LocalInputImageType::
Pointer ElementPositive( LocalInputImageType * inputImage );
310 template< typename LocalInputImageType, typename LocalOutputImageType >
311 typename LocalOutputImageType::
Pointer ElementRound( LocalInputImageType * inputImage );
316 int FactorizeNumber(
int n );
320 int FindClosestValidDimension(
int n );
322 template< typename LocalInputImageType >
323 double CalculatePrecisionTolerance( LocalInputImageType * inputImage );
342 const
unsigned int m_TotalForwardAndInverseFFTs;
345 float m_AccumulatedProgress;
349 #ifndef ITK_MANUAL_INSTANTIATION
350 #include "itkMaskedFFTNormalizedCorrelationImageFilter.hxx"
void SetFixedImage(const InputImageType *input)
ImageToImageFilter< TInputImage, TOutputImage > Superclass
virtual void PrintSelf(std::ostream &os, Indent indent) const override
InputImageType * GetFixedImage()
TOutputImage OutputImageType
itk::SizeValueType SizeValueType
InputImageType::RegionType InputRegionType
FFTImageType::Pointer FFTImagePointer
Represent the size (bounds) of a n-dimensional image.
SmartPointer< const Self > ConstPointer
void SetMovingImageMask(const MaskImageType *input)
Image< RealPixelType, ImageDimension > RealImageType
An image region represents a structured region of data.
RealImageType::RegionType RealRegionType
MaskedFFTNormalizedCorrelationImageFilter Self
Base class for all process objects that output image data.
OutputImageType::Pointer OutputImagePointer
virtual ~MaskedFFTNormalizedCorrelationImageFilter()
unsigned long SizeValueType
MaskImageType * GetFixedImageMask()
SmartPointer< Self > Pointer
OutputPixelType RealPixelType
InputImageType::SizeType InputSizeType
SmartPointer< const Self > ConstPointer
TInputImage InputImageType
RealImageType::Pointer RealImagePointer
void SetFixedImageMask(const MaskImageType *input)
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
SmartPointer< Self > Pointer
Base class for all data objects in ITK.
RealImageType::IndexType RealIndexType
InputImageType * GetMovingImage()
Image< std::complex< RealPixelType >, ImageDimension > FFTImageType
Base class for filters that take an image as input and produce an image as output.
InputImageType::Pointer InputImagePointer
Control indentation during Print() invocation.
Calculate masked normalized cross correlation using FFTs.
MaskImageType::Pointer MaskImagePointer
RealImageType::PointType RealPointType
OutputImageType::PixelType OutputPixelType
MaskImageType * GetMovingImageMask()
void SetMovingImage(const InputImageType *input)
RealImageType::SizeType RealSizeType
#define itkConceptMacro(name, concept)
TInputImage InputImageType
InputImageType::ConstPointer InputImageConstPointer
Templated n-dimensional image class.
MaskedFFTNormalizedCorrelationImageFilter()