35 #include "sirf/iUtilities/iutilities.h" 40 template<
class dataType>
class Transformation;
54 template<
class dataType>
75 virtual void set_reference_image(
const std::shared_ptr<const ImageData> reference_image_sptr);
78 virtual void set_floating_image(
const std::shared_ptr<const ImageData> floating_image_sptr);
114 virtual std::shared_ptr<ImageData>
forward(
const std::shared_ptr<const ImageData> input_sptr) = 0;
117 virtual void forward(std::shared_ptr<ImageData> output_sptr,
const std::shared_ptr<const ImageData> input_sptr) = 0;
120 virtual std::shared_ptr<ImageData>
adjoint(
const std::shared_ptr<const ImageData> input_sptr) = 0;
123 virtual void adjoint(std::shared_ptr<ImageData> output_sptr,
const std::shared_ptr<const ImageData> input_sptr) = 0;
126 virtual std::shared_ptr<ImageData>
backward(
const std::shared_ptr<const ImageData> input_sptr);
129 virtual void backward(std::shared_ptr<ImageData> output_sptr,
const std::shared_ptr<const ImageData> input_sptr);
134 virtual void set_up() = 0;
161 bool _need_to_set_up =
true;
162 bool _need_to_set_up_forward =
true;
163 bool _need_to_set_up_adjoint =
true;
void set_interpolation_type_to_linear()
Set interpolation type to linear.
Definition: Resample.h:93
virtual void add_transformation(const std::shared_ptr< const Transformation< dataType > > transformation_sptr)
Add transformation.
Definition: Resample.cpp:55
virtual void process()=0
Process. Equivalent of calling forward(floating_image). Use get_output to get resampled image...
void set_interpolation_type_to_nearest_neighbour()
Set interpolation type to nearest neighbour.
Definition: Resample.h:90
virtual std::shared_ptr< ImageData > adjoint(const std::shared_ptr< const ImageData > input_sptr)=0
Do the adjoint transformation.
InterpolationType
Interpolation type.
Definition: Resample.h:60
void set_padding_value(const float padding_value)
Set padding value.
Definition: Resample.h:105
std::shared_ptr< ImageData > _output_image_sptr
Output image.
Definition: Resample.h:157
const std::shared_ptr< const ImageData > get_output_sptr() const
Get output.
Definition: Resample.h:111
Definition: Resample.h:55
virtual void check_parameters()
Check parameters.
Definition: Resample.cpp:73
virtual void set_floating_image(const std::shared_ptr< const ImageData > floating_image_sptr)
Set floating image. This is the image that would be the floating if you were doing a forward transfor...
Definition: Resample.cpp:46
virtual void set_interpolation_type(const enum InterpolationType type)
Set interpolation type (0=nearest neighbour, 1=linear, 3=cubic, 4=sinc)
Definition: Resample.cpp:64
void set_interpolation_type_to_cubic_spline()
Set interpolation type to cubic spline.
Definition: Resample.h:96
virtual ~Resampler()
Destructor.
Definition: Resample.h:72
InterpolationType _interpolation_type
Interpolation type.
Definition: Resample.h:154
virtual void set_up_adjoint()=0
Set up adjoint.
virtual void set_up()=0
Set up.
Abstract data container.
Definition: GeometricalInfo.cpp:141
float _padding_value
Padding value.
Definition: Resample.h:160
Resampler()
Constructor.
Definition: Resample.h:69
virtual void set_reference_image(const std::shared_ptr< const ImageData > reference_image_sptr)
Set reference image. This is the image that would be the reference if you were doing a forward transf...
Definition: Resample.cpp:36
const InterpolationType get_interpolation_type() const
Get interpolation type.
Definition: Resample.h:102
std::shared_ptr< const ImageData > _floating_image_sptr
Floating image.
Definition: Resample.h:148
void set_interpolation_type_to_sinc()
Set interpolation type to sinc.
Definition: Resample.h:99
std::vector< std::shared_ptr< const Transformation< dataType > > > _transformations
Transformations (could be mixture of affine, displacements, deformations).
Definition: Resample.h:151
virtual std::shared_ptr< ImageData > forward(const std::shared_ptr< const ImageData > input_sptr)=0
Do the forward transformation.
virtual std::shared_ptr< ImageData > backward(const std::shared_ptr< const ImageData > input_sptr)
Backward. Alias for Adjoint.
Definition: Resample.cpp:85
void clear_transformations()
Clear transformations.
Definition: Resample.h:84
virtual void set_up_forward()=0
Set up forward.
std::shared_ptr< const ImageData > _reference_image_sptr
Reference image.
Definition: Resample.h:146