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);
242 itkGetMacro(MaximumNumberOfOverlappingPixels,SizeValueType);
244 #ifdef ITK_USE_CONCEPT_CHECKING 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 );
322 template<
typename LocalInputImageType >
327 void operator=(
const Self&) ITK_DELETE_FUNCTION;
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
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
SizeValueType m_RequiredNumberOfOverlappingPixels
OutputImageType::Pointer OutputImagePointer
void VerifyInputInformation() override
LocalOutputImageType::Pointer CalculateInverseFFT(LocalInputImageType *inputImage, RealSizeType &combinedImageSize)
virtual ~MaskedFFTNormalizedCorrelationImageFilter()
unsigned long SizeValueType
void PrintSelf(std::ostream &os, Indent indent) const override
LocalInputImageType::Pointer ElementPositive(LocalInputImageType *inputImage)
LocalOutputImageType::Pointer ElementRound(LocalInputImageType *inputImage)
void operator=(const Self &) ITK_DELETE_FUNCTION
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
static const unsigned int ImageDimension
Superclass::IndexType IndexType
float m_AccumulatedProgress
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()