18 #ifndef itkMaskedFFTNormalizedCorrelationImageFilter_h
19 #define itkMaskedFFTNormalizedCorrelationImageFilter_h
139 template <
typename TInputImage,
typename TOutputImage,
typename TMaskImage=TInputImage >
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
288 template< typename LocalInputImageType >
289 typename LocalInputImageType::
Pointer RotateImage( LocalInputImageType * inputImage );
291 template< typename LocalInputImageType, typename LocalOutputImageType >
294 template< typename LocalInputImageType, typename LocalOutputImageType >
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 >
310 template< typename LocalInputImageType, typename LocalOutputImageType >
322 template< typename LocalInputImageType >
327 void operator=(const Self&);
350 #ifndef ITK_MANUAL_INSTANTIATION
351 #include "itkMaskedFFTNormalizedCorrelationImageFilter.hxx"
void SetFixedImage(const InputImageType *input)
ImageToImageFilter< TInputImage, TOutputImage > Superclass
void EnlargeOutputRequestedRegion(DataObject *output) override
Superclass::RegionType RegionType
InputImageType * GetFixedImage()
virtual void SetNumberOfRequiredInputs(DataObjectPointerArraySizeType)
Set the number of required indexed inputs.
TOutputImage OutputImageType
itk::SizeValueType SizeValueType
InputImageType::RegionType InputRegionType
TMaskImage::Pointer PreProcessMask(const InputImageType *inputImage, const MaskImageType *inputMask)
FFTImageType::Pointer FFTImagePointer
LocalInputImageType::Pointer ElementSubtraction(LocalInputImageType *inputImage1, LocalInputImageType *inputImage2)
Represent the size (bounds) of a n-dimensional image.
SmartPointer< const Self > ConstPointer
void SetMovingImageMask(const MaskImageType *input)
Image< RealPixelType, ImageDimension > RealImageType
LocalOutputImageType::Pointer ElementProduct(LocalInputImageType *inputImage1, LocalInputImageType *inputImage2)
RealImageType::RegionType RealRegionType
MaskedFFTNormalizedCorrelationImageFilter Self
SizeValueType m_RequiredNumberOfOverlappingPixels
Base class for all process objects that output image data.
OutputImageType::Pointer OutputImagePointer
void VerifyInputInformation() override
LocalOutputImageType::Pointer CalculateInverseFFT(LocalInputImageType *inputImage, RealSizeType &combinedImageSize)
virtual ~MaskedFFTNormalizedCorrelationImageFilter()
unsigned long SizeValueType
LocalInputImageType::Pointer ElementPositive(LocalInputImageType *inputImage)
LocalOutputImageType::Pointer ElementRound(LocalInputImageType *inputImage)
TInputImage::Pointer PreProcessImage(const InputImageType *inputImage, const MaskImageType *inputMask)
MaskImageType * GetFixedImageMask()
int FactorizeNumber(int n)
const unsigned int m_TotalForwardAndInverseFFTs
OutputPixelType RealPixelType
InputImageType::SizeType InputSizeType
void PrintSelf(std::ostream &os, Indent indent) const override
static const unsigned int ImageDimension
Superclass::IndexType IndexType
float m_AccumulatedProgress
TInputImage InputImageType
RealImageType::Pointer RealImagePointer
void SetFixedImageMask(const MaskImageType *input)
LocalInputImageType::Pointer RotateImage(LocalInputImageType *inputImage)
virtual void GenerateInputRequestedRegion() override
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
SmartPointer< Self > Pointer
SizeValueType m_MaximumNumberOfOverlappingPixels
RealImageType::IndexType RealIndexType
InputImageType * GetMovingImage()
Image< std::complex< RealPixelType >, ImageDimension > FFTImageType
LocalInputImageType::Pointer ElementQuotient(LocalInputImageType *inputImage1, LocalInputImageType *inputImage2)
LocalOutputImageType::Pointer CalculateForwardFFT(LocalInputImageType *inputImage, InputSizeType &FFTImageSize)
Base class for filters that take an image as input and produce an image as output.
InputImageType::Pointer InputImagePointer
void GenerateData() override
Control indentation during Print() invocation.
RealPixelType m_RequiredFractionOfOverlappingPixels
Calculate masked normalized cross correlation using FFTs.
void GenerateOutputInformation() override
MaskImageType::Pointer MaskImagePointer
virtual void SetNthInput(DataObjectPointerArraySizeType num, DataObject *input)
RealImageType::PointType RealPointType
OutputImageType::PixelType OutputPixelType
MaskImageType * GetMovingImageMask()
void SetMovingImage(const InputImageType *input)
RealImageType::SizeType RealSizeType
#define itkConceptMacro(name, concept)
double CalculatePrecisionTolerance(LocalInputImageType *inputImage)
TInputImage InputImageType
InputImageType::ConstPointer InputImageConstPointer
int FindClosestValidDimension(int n)
Base class for all data objects in ITK.
Templated n-dimensional image class.
MaskedFFTNormalizedCorrelationImageFilter()