18 #ifndef __itkMaskedFFTNormalizedCorrelationImageFilter_h
19 #define __itkMaskedFFTNormalizedCorrelationImageFilter_h
116 template <
class TInputImage,
class TOutputImage,
class TMaskImage=TInputImage >
135 itkStaticConstMacro(ImageDimension,
unsigned int,
136 TOutputImage::ImageDimension);
165 this->SetNthInput(0, const_cast<InputImageType *>(input) );
176 this->SetNthInput(1, const_cast<InputImageType *>(input) );
187 this->SetNthInput(2, const_cast<MaskImageType *>(input) );
198 this->SetNthInput(3, const_cast<MaskImageType *>(input) );
207 itkSetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
208 itkGetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
211 #ifdef ITK_USE_CONCEPT_CHECKING
222 this->SetNumberOfRequiredInputs(2);
223 m_RequiredNumberOfOverlappingPixels = 0;
226 void PrintSelf(std::ostream& os,
Indent indent)
const;
229 void VerifyInputInformation();
239 virtual void GenerateInputRequestedRegion();
245 void GenerateOutputInformation();
247 typename TMaskImage::Pointer PreProcessMask(
const InputImageType * inputImage,
const MaskImageType * inputMask );
249 typename TInputImage::Pointer PreProcessImage(
const InputImageType * inputImage, MaskImageType * inputMask );
251 template<
class LocalInputImageType >
252 typename LocalInputImageType::Pointer RotateImage( LocalInputImageType * inputImage );
254 template<
class LocalInputImageType,
class LocalOutputImageType >
255 typename LocalOutputImageType::Pointer CalculateForwardFFT( LocalInputImageType * inputImage, InputSizeType & FFTImageSize );
257 template<
class LocalInputImageType,
class LocalOutputImageType >
258 typename LocalOutputImageType::Pointer CalculateInverseFFT( LocalInputImageType * inputImage, RealSizeType & combinedImageSize );
261 template<
class LocalInputImageType,
class LocalOutputImageType >
262 typename LocalOutputImageType::Pointer ElementProduct( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
264 template<
class LocalInputImageType >
265 typename LocalInputImageType::Pointer ElementQuotient( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
267 template<
class LocalInputImageType >
268 typename LocalInputImageType::Pointer ElementSubtraction( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
270 template<
class LocalInputImageType >
271 typename LocalInputImageType::Pointer ElementPositive( LocalInputImageType * inputImage );
273 template<
class LocalInputImageType,
class LocalOutputImageType >
274 typename LocalOutputImageType::Pointer ElementRound( LocalInputImageType * inputImage );
279 int FactorizeNumber(
int n );
283 int FindClosestValidDimension(
int n );
285 template<
class LocalInputImageType >
286 double CalculatePrecisionTolerance( LocalInputImageType * inputImage );
290 void operator=(
const Self&);
299 #ifndef ITK_MANUAL_INSTANTIATION
300 #include "itkMaskedFFTNormalizedCorrelationImageFilter.hxx"