21 #ifndef otbStreamingResampleImageFilter_h
22 #define otbStreamingResampleImageFilter_h
24 #include "itkImageToImageFilter.h"
26 #include "itkTransformToDisplacementFieldSource.h"
27 #include "itkLinearInterpolateImageFunction.h"
29 #include "itkVector.h"
58 template <
class TInputImage,
class TOutputImage,
class TInterpolatorPrecisionType =
double>
64 typedef itk::ImageToImageFilter<TInputImage, TOutputImage>
Superclass;
87 typedef typename DisplacementFieldGeneratorType::TransformType
TransformType;
88 typedef typename DisplacementFieldGeneratorType::SizeType
SizeType;
89 typedef typename DisplacementFieldGeneratorType::SpacingType
SpacingType;
90 typedef typename DisplacementFieldGeneratorType::OriginType
OriginType;
91 typedef typename DisplacementFieldGeneratorType::IndexType
IndexType;
92 typedef typename DisplacementFieldGeneratorType::RegionType
RegionType;
95 typedef itk::InterpolateImageFunction<InputImageType, TInterpolatorPrecisionType>
InterpolatorType;
106 m_DisplacementFilter->SetTransform(transform);
113 void SetDisplacementFieldSpacing(
SpacingType spacing);
117 return m_SignedOutputSpacing;
124 m_DisplacementFilter->SetOutputOrigin(origin);
125 m_WarpFilter->SetOutputOrigin(origin);
146 m_WarpFilter->SetInterpolator(interpolator);
158 void SetOutputParametersFromImage(
const ImageBaseType* image);
163 m_DisplacementFilter->SetNumberOfWorkUnits(nbThread);
167 void PropagateRequestedRegion(itk::DataObject* output)
override;
175 void GenerateData()
override;
177 void GenerateOutputInformation()
override;
179 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
195 #ifndef OTB_MANUAL_INSTANTIATION
Creation of an "otb" image which contains metadata.
This class is a composite filter resampling an input image by setting a transform....
itk::TransformToDisplacementFieldSource< DisplacementFieldType, double > DisplacementFieldGeneratorType
itk::ImageToImageFilter< TInputImage, TOutputImage > Superclass
const SpacingType & GetDisplacementFieldSpacing() const
otbGetObjectMemberMacro(WarpFilter, EdgePaddingValue, typename OutputImageType::PixelType)
otbSetObjectMemberMacro(WarpFilter, OutputSpacing, SpacingType)
otbSetObjectMemberMacro(WarpFilter, OutputSize, SizeType)
otbGetObjectMemberConstReferenceMacro(WarpFilter, OutputOrigin, OriginType)
itk::SmartPointer< const Self > ConstPointer
itk::LinearInterpolateImageFunction< InputImageType, TInterpolatorPrecisionType > DefaultInterpolatorType
void SetDisplacementFilterNumberOfThreads(unsigned int nbThread)
otbGetObjectMemberConstMacro(WarpFilter, Interpolator, const InterpolatorType *)
otb::Image< DisplacementType > DisplacementFieldType
otbGetObjectMemberConstMacro(DisplacementFilter, Transform, const TransformType *)
DisplacementFieldGeneratorType::SizeType SizeType
InterpolatorType::Pointer InterpolatorPointerType
void SetTransform(TransformType *transform)
DisplacementFieldGeneratorType::RegionType RegionType
DisplacementFieldGeneratorType::Pointer m_DisplacementFilter
itk::ImageBase< OutputImageType::ImageDimension > ImageBaseType
TOutputImage OutputImageType
otbGetObjectMemberConstReferenceMacro(WarpFilter, OutputStartIndex, IndexType)
SpacingType m_SignedOutputSpacing
DisplacementFieldGeneratorType::OriginType OriginType
void SetOutputOrigin(const OriginType &origin)
DisplacementFieldGeneratorType::TransformType TransformType
~StreamingResampleImageFilter() override
otbGetObjectMemberConstReferenceMacro(WarpFilter, OutputSpacing, SpacingType)
void SetInterpolator(InterpolatorType *interpolator)
TInputImage InputImageType
itk::InterpolateImageFunction< InputImageType, TInterpolatorPrecisionType > InterpolatorType
DisplacementFieldGeneratorType::SpacingType SpacingType
itk::Vector< double, TOutputImage::ImageDimension > DisplacementType
DisplacementFieldGeneratorType::IndexType IndexType
otbSetObjectMemberMacro(WarpFilter, EdgePaddingValue, typename OutputImageType::PixelType)
otbSetObjectMemberMacro(WarpFilter, OutputStartIndex, IndexType)
otbGetObjectMemberConstReferenceMacro(WarpFilter, OutputSize, SizeType)
void operator=(const Self &)=delete
StreamingResampleImageFilter(const Self &)=delete
StreamingResampleImageFilter Self
StreamingWarpImageFilter< InputImageType, OutputImageType, DisplacementFieldType > WarpImageFilterType
WarpImageFilterType::Pointer m_WarpFilter
itk::SmartPointer< Self > Pointer
This class acts like the itk::WarpImageFilter, but it does not request the largest possible region of...
itk::SmartPointer< Self > Pointer
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.