21 #ifndef mia_2d_transform_hh 22 #define mia_2d_transform_hh 63 typedef std::shared_ptr<C2DTransformation >
Pointer;
96 void advance(
unsigned int delta);
102 virtual iterator_impl * clone()
const __attribute__((warn_unused_result)) = 0;
123 void print(std::ostream& os)
const;
125 virtual const C2DFVector& do_get_value()
const = 0;
126 virtual void do_y_increment() = 0;
127 virtual void do_x_increment() = 0;
214 void print(std::ostream& os)
const;
216 std::unique_ptr<iterator_impl> m_holder;
234 void set_creator_string(
const std::string& s);
237 const std::string& get_creator_string()
const;
247 virtual
C2DTransformation *invert() const __attribute__((warn_unused_result)) = 0;
267 Pointer upscale(const
C2DBounds& size) const;
278 virtual
size_t degrees_of_freedom() const = 0;
283 virtual
void set_identity() = 0;
300 virtual
C2DFMatrix derivative_at(
int x,
int y) const = 0;
316 virtual
void set_parameters(const
CDoubleVector& params) = 0;
321 virtual
float get_max_transform() const = 0;
327 virtual const
C2DBounds& get_size() const = 0;
342 return get_displacement_at(x);
360 virtual float get_jacobian(
const C2DFVectorfield& v,
float delta)
const = 0;
368 virtual bool refine();
374 static constexpr
const char *input_spacing_attr =
"in-pixel-spacing";
379 static constexpr
const char *output_spacing_attr =
"out-pixel-spacing";
387 virtual C2DBounds get_minimal_supported_image_size()
const;
391 virtual Pointer do_upscale(
const C2DBounds& size)
const = 0;
393 std::string m_creator_string;
394 virtual C2DTransformation *do_clone() const __attribute__((warn_unused_result)) = 0;
C2DImage::Pointer P2DImage
Shared pointer representation of the 2D Image.
bool operator==(const CAttribute &a, const CAttribute &b)
A wrapper around the c-array to provide an STL like interface for iterators.
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
EXPORT_2D C2DFVectorfield & operator+=(C2DFVectorfield &a, const C2DFVectorfield &b)
C2DTransformation::Pointer P2DTransformation
Pointer type for the 2D transformation.
EXPORT_2D bool operator!=(const C2DTransformation::const_iterator &a, const C2DTransformation::const_iterator &b)
Compare two transformation iterators.
a 2D field of floating point single accuracy 2D vectors
The factory to create an interpolator from some input data.
This is the base class for 2D images that can hold generic pixel data.
Matrix EXPORT_GSL operator*(const Matrix &lhs, const Matrix &rhs)
#define NS_MIA_END
conveniance define to end the mia namespace