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);
208 itkSetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
209 itkGetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
213 itkGetMacro(RequiredFractionOfOverlappingPixels,
RealPixelType);
214 itkSetClampMacro(RequiredFractionOfOverlappingPixels,
RealPixelType, 0.0f, 1.0f);
220 #ifdef ITK_USE_CONCEPT_CHECKING
231 Self::SetPrimaryInputName(
"FixedImage");
234 Self::AddRequiredInputName(
"MovingImage", 1);
237 Self::AddOptionalInputName(
"FixedImageMask", 2);
240 Self::AddOptionalInputName(
"MovingImageMask", 3);
242 m_RequiredNumberOfOverlappingPixels = 0;
243 m_RequiredFractionOfOverlappingPixels = 0;
244 m_MaximumNumberOfOverlappingPixels = 0;
245 m_AccumulatedProgress = 0.0;
248 void PrintSelf(std::ostream& os,
Indent indent)
const ITK_OVERRIDE;
251 void VerifyInputInformation() ITK_OVERRIDE;
254 void GenerateData() ITK_OVERRIDE;
261 virtual
void GenerateInputRequestedRegion() ITK_OVERRIDE;
267 void GenerateOutputInformation() ITK_OVERRIDE;
269 void EnlargeOutputRequestedRegion(
DataObject *output ) ITK_OVERRIDE;
271 typename TMaskImage::Pointer PreProcessMask( const InputImageType * inputImage, const MaskImageType * inputMask );
273 typename TInputImage::Pointer PreProcessImage( const InputImageType * inputImage, const MaskImageType * inputMask );
275 template< typename LocalInputImageType >
276 typename LocalInputImageType::Pointer RotateImage( LocalInputImageType * inputImage );
278 template< typename LocalInputImageType, typename LocalOutputImageType >
279 typename LocalOutputImageType::Pointer CalculateForwardFFT( LocalInputImageType * inputImage, InputSizeType & FFTImageSize );
281 template< typename LocalInputImageType, typename LocalOutputImageType >
282 typename LocalOutputImageType::Pointer CalculateInverseFFT( LocalInputImageType * inputImage, RealSizeType & combinedImageSize );
285 template< typename LocalInputImageType, typename LocalOutputImageType >
286 typename LocalOutputImageType::Pointer ElementProduct( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
288 template< typename LocalInputImageType >
289 typename LocalInputImageType::Pointer ElementQuotient( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
291 template< typename LocalInputImageType >
292 typename LocalInputImageType::Pointer ElementSubtraction( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
294 template< typename LocalInputImageType >
295 typename LocalInputImageType::Pointer ElementPositive( LocalInputImageType * inputImage );
297 template< typename LocalInputImageType, typename LocalOutputImageType >
298 typename LocalOutputImageType::Pointer ElementRound( LocalInputImageType * inputImage );
303 int FactorizeNumber(
int n );
307 int FindClosestValidDimension(
int n );
309 template< typename LocalInputImageType >
310 double CalculatePrecisionTolerance( LocalInputImageType * inputImage );
329 const
unsigned int m_TotalForwardAndInverseFFTs;
332 float m_AccumulatedProgress;
336 #ifndef ITK_MANUAL_INSTANTIATION
337 #include "itkMaskedFFTNormalizedCorrelationImageFilter.hxx"
ImageToImageFilter< TInputImage, TOutputImage > Superclass
Superclass::RegionType RegionType
TOutputImage OutputImageType
itk::SizeValueType SizeValueType
InputImageType::RegionType InputRegionType
FFTImageType::Pointer FFTImagePointer
Represent the size (bounds) of a n-dimensional image.
SmartPointer< const Self > ConstPointer
virtual ~MaskedFFTNormalizedCorrelationImageFilter() override
Image< RealPixelType, ImageDimension > RealImageType
RealImageType::RegionType RealRegionType
MaskedFFTNormalizedCorrelationImageFilter Self
Base class for all process objects that output image data.
OutputImageType::Pointer OutputImagePointer
unsigned long SizeValueType
OutputPixelType RealPixelType
InputImageType::SizeType InputSizeType
TInputImage InputImageType
RealImageType::Pointer RealImagePointer
SmartPointer< Self > Pointer
RealImageType::IndexType RealIndexType
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.
ImageBaseType::SizeType SizeType
MaskImageType::Pointer MaskImagePointer
RealImageType::PointType RealPointType
OutputImageType::PixelType OutputPixelType
RealImageType::SizeType RealSizeType
#define itkConceptMacro(name, concept)
TInputImage InputImageType
InputImageType::ConstPointer InputImageConstPointer
Base class for all data objects in ITK.
Templated n-dimensional image class.
MaskedFFTNormalizedCorrelationImageFilter()