13 #ifndef itkStitchImageFilter_h
14 #define itkStitchImageFilter_h
16 #include "itkFixedArray.h"
17 #include "itkTransform.h"
18 #include "itkImageRegionIterator.h"
19 #include "itkImageToImageFilter.h"
20 #include "itkLinearInterpolateImageFunction.h"
22 #include "itkDefaultConvertPixelTraits.h"
23 #include "itkDataObjectDecorator.h"
39 os <<
"BorderDistance";
59 template<
typename TInputImage,
60 typename TOutputImage,
61 typename TInterpolatorPrecisionType = double,
62 typename TTransformPrecisionType = TInterpolatorPrecisionType>
64 public ImageToImageFilter< TInputImage, TOutputImage >
69 typedef ImageToImageFilter< TInputImage, TOutputImage >
Superclass;
88 TOutputImage::ImageDimension);
90 TInputImage::ImageDimension);
93 typedef ImageBase< itkGetStaticConstMacro(ImageDimension) >
ImageBaseType;
98 typedef Transform< TTransformPrecisionType,
99 itkGetStaticConstMacro(ImageDimension),
119 typedef typename LinearInterpolatorType::Pointer
123 typedef Size< itkGetStaticConstMacro(ImageDimension) >
SizeType;
141 typedef ContinuousIndex< TTransformPrecisionType, ImageDimension >
152 using Superclass::GetInput;
157 using Superclass::SetInput;
176 itkGetConstReferenceMacro(DefaultPixelValue,
PixelType);
219 itkSetMacro(UseReferenceImage,
bool);
220 itkBooleanMacro(UseReferenceImage);
221 itkGetConstMacro(UseReferenceImage,
bool);
249 ModifiedTimeType
GetMTime(
void) const ITK_OVERRIDE;
251 #ifdef ITK_USE_CONCEPT_CHECKING
253 itkConceptMacro( OutputHasNumericTraitsCheck,
254 ( Concept::HasNumericTraits< PixelComponentType > ) );
261 void PrintSelf(std::ostream & os, Indent indent)
const ITK_OVERRIDE;
280 ThreadIdType threadId) ITK_OVERRIDE;
304 typedef std::vector<const InputImageType*> InputImageVectorType;
305 typedef std::map<const InputImageType*, typename TransformType::ConstPointer> TransformMapType;
306 typedef std::map<const InputImageType*, InterpolatorPointerType> InterpolatorMapType;
308 InputImageVectorType GetInputs();
309 TransformMapType GetTransforms();
311 InterpolatorMapType m_Interpolators;
321 bool m_UseReferenceImage;
326 #ifndef ITK_MANUAL_INSTANTIATION
327 #include "itkStitchImageFilter.tpp"
ITK filter that resamples/stitches multiple images into a given reference geometry.
SmartPointer< Self > Pointer
const InterpolatorType * GetInterpolator(unsigned int index) const
virtual void SetInput(unsigned int index, const InputImageType *image, const TransformType *transform, InterpolatorType *interpolator)
PixelConvertType::ComponentType PixelComponentType
TOutputImage::IndexType IndexType
TOutputImage OutputImageType
Transform< TTransformPrecisionType, itkGetStaticConstMacro(ImageDimension), itkGetStaticConstMacro(ImageDimension) > TransformType
Size< itkGetStaticConstMacro(ImageDimension) > SizeType
void EnsureInterpolators()
InterpolatorType::PointType PointType
~StitchImageFilter() ITK_OVERRIDE
InterpolatorConvertType::ComponentType ComponentType
InterpolatorType::Pointer InterpolatorPointerType
virtual void BeforeThreadedGenerateData() ITK_OVERRIDE
ImageBase< ImageDimension > ReferenceImageBaseType
InterpolateImageFunction< InputImageType, TInterpolatorPrecisionType > InterpolatorType
TOutputImage::RegionType OutputImageRegionType
TOutputImage::DirectionType DirectionType
itkStaticConstMacro(ImageDimension, unsigned int, TOutputImage::ImageDimension)
virtual void VerifyInputInformation() const ITK_OVERRIDE
DefaultConvertPixelTraits< InterpolatorOutputType > InterpolatorConvertType
TOutputImage::PointType OriginPointType
itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension)
TOutputImage::PixelType PixelType
virtual void SetInput(unsigned int index, const InputImageType *image, const TransformType *transform)
LinearInterpolatorType::Pointer LinearInterpolatorPointerType
LinearInterpolateImageFunction< InputImageType, TInterpolatorPrecisionType > LinearInterpolatorType
TInputImage InputImageType
void SetOutputParametersFromImage(const ImageBaseType *image)
OutputImageType::Pointer OutputImagePointer
void SetTransform(unsigned int index, const TransformType *transform)
virtual void SetOutputSpacing(const double *values)
ImageToImageFilter< TInputImage, TOutputImage > Superclass
InputImageType::Pointer InputImagePointer
itkGetInputMacro(ReferenceImage, ReferenceImageBaseType)
ContinuousIndex< TTransformPrecisionType, ImageDimension > ContinuousInputIndexType
void PrintSelf(std::ostream &os, Indent indent) const ITK_OVERRIDE
SmartPointer< const Self > ConstPointer
InputImageType::ConstPointer InputImageConstPointer
void SetInput(const InputImageType *image) override
virtual void AfterThreadedGenerateData() ITK_OVERRIDE
TOutputImage::SpacingType SpacingType
InterpolatorType::OutputType InterpolatorOutputType
const TransformType * GetTransform(unsigned int index) const
DefaultConvertPixelTraits< PixelType > PixelConvertType
DataObjectDecorator< TransformType > DecoratedTransformType
TInputImage::PixelType InputPixelType
DecoratedTransformType::Pointer DecoratedTransformPointer
InputImageType::RegionType InputImageRegionType
ModifiedTimeType GetMTime(void) const ITK_OVERRIDE
virtual void GenerateOutputInformation() ITK_OVERRIDE
virtual PixelType CastPixelWithBoundsChecking(const InterpolatorOutputType value, const ComponentType minComponent, const ComponentType maxComponent) const
virtual void ThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) ITK_OVERRIDE
TransformType::ConstPointer TransformPointerType
ImageBase< itkGetStaticConstMacro(ImageDimension) > ImageBaseType
void SetInput(unsigned int index, const InputImageType *image) override
itkSetInputMacro(ReferenceImage, ReferenceImageBaseType)
virtual void GenerateInputRequestedRegion() ITK_OVERRIDE
static std::string GetTransformInputName(unsigned int index)
virtual void SetOutputOrigin(const double *values)
std::ostream & operator<<(std::ostream &os, const itk::StitchStrategy &strategy)