18 #ifndef __itkMaskedFFTNormalizedCorrelationImageFilter_h
19 #define __itkMaskedFFTNormalizedCorrelationImageFilter_h
116 template <
class TInputImage,
class TOutputImage >
135 itkStaticConstMacro(ImageDimension,
unsigned int,
136 TOutputImage::ImageDimension);
161 this->SetNthInput(0, const_cast<InputImageType *>(input) );
172 this->SetNthInput(1, const_cast<InputImageType *>(input) );
183 this->SetNthInput(2, const_cast<InputImageType *>(input) );
194 this->SetNthInput(3, const_cast<InputImageType *>(input) );
203 itkSetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
204 itkGetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
207 #ifdef ITK_USE_CONCEPT_CHECKING
218 this->SetNumberOfRequiredInputs(2);
219 m_RequiredNumberOfOverlappingPixels = 0;
222 void PrintSelf(std::ostream& os,
Indent indent)
const;
225 void VerifyInputInformation();
235 virtual void GenerateInputRequestedRegion();
241 void GenerateOutputInformation();
243 template<
class LocalInputImageType >
244 typename LocalInputImageType::Pointer PreProcessMask(
const LocalInputImageType * inputImage,
const LocalInputImageType * inputMask );
246 template<
class LocalInputImageType >
247 typename LocalInputImageType::Pointer PreProcessImage(
const LocalInputImageType * inputImage, LocalInputImageType * inputMask );
249 typename TInputImage::Pointer RotateImage( InputImageType * inputImage );
251 template<
class LocalInputImageType,
class LocalOutputImageType >
252 typename LocalOutputImageType::Pointer CalculateForwardFFT( LocalInputImageType * inputImage, InputSizeType & FFTImageSize );
254 template<
class LocalInputImageType,
class LocalOutputImageType >
255 typename LocalOutputImageType::Pointer CalculateInverseFFT( LocalInputImageType * inputImage, RealSizeType & combinedImageSize );
258 template<
class LocalInputImageType,
class LocalOutputImageType >
259 typename LocalOutputImageType::Pointer ElementProduct( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
261 template<
class LocalInputImageType >
262 typename LocalInputImageType::Pointer ElementQuotient( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
264 template<
class LocalInputImageType >
265 typename LocalInputImageType::Pointer ElementSubtraction( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
267 template<
class LocalInputImageType >
268 typename LocalInputImageType::Pointer ElementPositive( LocalInputImageType * inputImage );
270 template<
class LocalInputImageType,
class LocalOutputImageType >
271 typename LocalOutputImageType::Pointer ElementRound( LocalInputImageType * inputImage );
276 int FactorizeNumber(
int n );
280 int FindClosestValidDimension(
int n );
282 template<
class LocalInputImageType >
283 double CalculatePrecisionTolerance( LocalInputImageType * inputImage );
287 void operator=(
const Self&);
296 #ifndef ITK_MANUAL_INSTANTIATION
297 #include "itkMaskedFFTNormalizedCorrelationImageFilter.hxx"