18 #ifndef __itkMaskedFFTNormalizedCorrelationImageFilter_h
19 #define __itkMaskedFFTNormalizedCorrelationImageFilter_h
139 template <
class TInputImage,
class TOutputImage,
class TMaskImage=TInputImage >
158 itkStaticConstMacro(ImageDimension,
unsigned int,
159 TOutputImage::ImageDimension);
189 this->SetNthInput(0, const_cast<InputImageType *>(input) );
200 this->SetNthInput(1, const_cast<InputImageType *>(input) );
211 this->SetNthInput(2, const_cast<MaskImageType *>(input) );
222 this->SetNthInput(3, const_cast<MaskImageType *>(input) );
231 itkSetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
232 itkGetMacro(RequiredNumberOfOverlappingPixels,
SizeValueType);
236 itkGetMacro(RequiredFractionOfOverlappingPixels,RealPixelType);
237 void SetRequiredFractionOfOverlappingPixels(
RealPixelType requiredFractionOfOverlappingPixels)
240 requiredFractionOfOverlappingPixels = (requiredFractionOfOverlappingPixels < 0.0) ? 0.0 : requiredFractionOfOverlappingPixels;
241 requiredFractionOfOverlappingPixels = (requiredFractionOfOverlappingPixels > 1.0) ? 1.0 : requiredFractionOfOverlappingPixels;
242 m_RequiredFractionOfOverlappingPixels = requiredFractionOfOverlappingPixels;
249 #ifdef ITK_USE_CONCEPT_CHECKING
260 this->SetNumberOfRequiredInputs(2);
261 m_RequiredNumberOfOverlappingPixels = 0;
262 m_RequiredFractionOfOverlappingPixels = 0;
263 m_MaximumNumberOfOverlappingPixels = 0;
266 void PrintSelf(std::ostream& os,
Indent indent)
const;
269 void VerifyInputInformation();
279 virtual void GenerateInputRequestedRegion();
285 void GenerateOutputInformation();
287 typename TMaskImage::Pointer PreProcessMask(
const InputImageType * inputImage,
const MaskImageType * inputMask );
289 typename TInputImage::Pointer PreProcessImage(
const InputImageType * inputImage, MaskImageType * inputMask );
291 template<
class LocalInputImageType >
292 typename LocalInputImageType::Pointer RotateImage( LocalInputImageType * inputImage );
294 template<
class LocalInputImageType,
class LocalOutputImageType >
295 typename LocalOutputImageType::Pointer CalculateForwardFFT( LocalInputImageType * inputImage, InputSizeType & FFTImageSize );
297 template<
class LocalInputImageType,
class LocalOutputImageType >
298 typename LocalOutputImageType::Pointer CalculateInverseFFT( LocalInputImageType * inputImage, RealSizeType & combinedImageSize );
301 template<
class LocalInputImageType,
class LocalOutputImageType >
302 typename LocalOutputImageType::Pointer ElementProduct( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
304 template<
class LocalInputImageType >
305 typename LocalInputImageType::Pointer ElementQuotient( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
307 template<
class LocalInputImageType >
308 typename LocalInputImageType::Pointer ElementSubtraction( LocalInputImageType * inputImage1, LocalInputImageType * inputImage2 );
310 template<
class LocalInputImageType >
311 typename LocalInputImageType::Pointer ElementPositive( LocalInputImageType * inputImage );
313 template<
class LocalInputImageType,
class LocalOutputImageType >
314 typename LocalOutputImageType::Pointer ElementRound( LocalInputImageType * inputImage );
319 int FactorizeNumber(
int n );
323 int FindClosestValidDimension(
int n );
325 template<
class LocalInputImageType >
326 double CalculatePrecisionTolerance( LocalInputImageType * inputImage );
330 void operator=(
const Self&);
347 #ifndef ITK_MANUAL_INSTANTIATION
348 #include "itkMaskedFFTNormalizedCorrelationImageFilter.hxx"