Public Member Functions | Static Public Member Functions | Private Attributes | Friends
AffineMetric Class Reference

#include <AffineMetric.h>

Inheritance diagram for AffineMetric:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 AffineMetric ()
 Construct and AffineMetric from the matrix A.
 AffineMetric (vnl_double_3x3 const &A)
 Construct and AffineMetric from the 3x3 matrix A.
virtual vgl_point_2d< double > homg_to_image (vgl_homg_point_2d< double > const &) const
 Convert conditioned point p to image coordinates.
virtual vnl_double_2 homg_to_image (const HomgPoint2D &p) const
 Convert conditioned point p to image coordinates.
virtual vgl_homg_point_2d< double > image_to_homg (vgl_point_2d< double > const &) const
 Condition the 2D point p.
virtual HomgPoint2D image_to_homg (const vnl_double_2 &) const
 Condition the 2D point p.
virtual HomgPoint2D image_to_homg (double x, double y) const
 Condition 2D point (x,y).
virtual vgl_homg_point_2d< double > homg_to_imagehomg (vgl_homg_point_2d< double > const &) const
 Convert homogeneous point in conditioned coordinates to one in image coordinates.
virtual vgl_homg_point_2d< double > imagehomg_to_homg (vgl_homg_point_2d< double > const &) const
 Inverse-transform p.
virtual HomgPoint2D homg_to_imagehomg (const HomgPoint2D &p) const
 Transform p.
virtual HomgPoint2D imagehomg_to_homg (const HomgPoint2D &p) const
 Inverse-transform p.
void set (vnl_double_3x3 const &A)
void set (vnl_matrix< double > const &A)
void set (double a11, double a13, double a22, double a23, double a33)
 set [a11 0 a13; 0 a22 a23; 0 0 a33].
virtual vnl_double_3x3 get_C () const
 Return forward transformation matrix.
virtual vnl_double_3x3 get_C_inverse () const
 Return inverse transformation matrix.
virtual bool is_linear () const
 Declare that this is a linear transformation.
virtual bool can_invert_distance () const
 Declare that this is not an isometry.
vcl_ostream & print (vcl_ostream &s) const
 Send a human-readable representation to ostream.
virtual vgl_homg_line_2d< double > homg_to_image_line (vgl_homg_line_2d< double > const &) const
 Convert homogeneous line in conditioned coordinates to one in image coordinates.
virtual HomgLine2D homg_to_image_line (const HomgLine2D &) const
virtual vgl_homg_line_2d< double > image_to_homg_line (vgl_homg_line_2d< double > const &) const
virtual HomgLine2D image_to_homg_line (const HomgLine2D &) const
virtual HomgLineSeg2D image_to_homg_line (const HomgLineSeg2D &) const
virtual vgl_line_segment_2d
< double > 
image_to_homg_line (vgl_line_segment_2d< double > const &l) const
virtual HomgLineSeg2D homg_line_to_image (const HomgLineSeg2D &) const
virtual vgl_line_segment_2d
< double > 
homg_line_to_image (vgl_line_segment_2d< double > const &l) const
 Convert homogeneous line segment in conditioned coordinates to one in image coordinates.
virtual double perp_dist_squared (const HomgPoint2D &, const HomgLine2D &) const
virtual double perp_dist_squared (vgl_homg_point_2d< double > const &, vgl_homg_line_2d< double > const &) const
 Compute perpendicular distance in image coordinates between point p and line l, expressed in conditioned coordinates.
virtual HomgPoint2D perp_projection (const HomgLine2D &l, const HomgPoint2D &p) const
virtual vgl_homg_point_2d< double > perp_projection (vgl_homg_line_2d< double > const &l, vgl_homg_point_2d< double > const &p) const
 Project point onto line.
virtual double distance_squared (const HomgPoint2D &, const HomgPoint2D &) const
virtual double distance_squared (const HomgLineSeg2D &segment, const HomgLine2D &line) const
virtual double distance_squared (const vgl_homg_point_2d< double > &, const vgl_homg_point_2d< double > &) const
 Get perpendicular distance in image.
virtual double distance_squared (vgl_line_segment_2d< double > const &segment, vgl_homg_line_2d< double > const &line) const
 Get distance between a line segment and an infinite line.
virtual bool is_within_distance (const HomgPoint2D &, const HomgPoint2D &, double distance) const
virtual bool is_within_distance (vgl_homg_point_2d< double > const &, vgl_homg_point_2d< double > const &, double distance) const
virtual double image_to_homg_distance (double image_distance) const
 Convert a distance in image coordinates to one in conditioned coordinates.
virtual double homg_to_image_distance (double image_distance) const
 Convert a distance in image coordinates to one in conditioned coordinates.

Static Public Member Functions

static FMatrix decondition (const FMatrix &F, const ImageMetric *c1, const ImageMetric *c2)

Private Attributes

vnl_double_3x3 A_
vnl_double_3x3 A_inverse_

Friends

vcl_ostream & operator<< (vcl_ostream &o, const ImageMetric &m)

Detailed Description

Definition at line 24 of file AffineMetric.h.


Constructor & Destructor Documentation

AffineMetric::AffineMetric ( )

Construct and AffineMetric from the matrix A.

The last row of A should be (0,0,lambda).

Definition at line 23 of file AffineMetric.cxx.

AffineMetric::AffineMetric ( vnl_double_3x3 const &  A)

Construct and AffineMetric from the 3x3 matrix A.

The last row of A should be (0,0,lambda).

Definition at line 32 of file AffineMetric.cxx.


Member Function Documentation

virtual bool AffineMetric::can_invert_distance ( ) const [inline, virtual]

Declare that this is not an isometry.

Reimplemented from ImageMetric.

Definition at line 61 of file AffineMetric.h.

FMatrix ImageMetric::decondition ( const FMatrix F,
const ImageMetric c1,
const ImageMetric c2 
) [static, inherited]

Definition at line 308 of file ImageMetric.cxx.

double ImageMetric::distance_squared ( const HomgPoint2D p1,
const HomgPoint2D p2 
) const [virtual, inherited]

Reimplemented in SimilarityMetric.

Definition at line 221 of file ImageMetric.cxx.

double ImageMetric::distance_squared ( const HomgLineSeg2D segment,
const HomgLine2D line 
) const [virtual, inherited]

Reimplemented in SimilarityMetric.

Definition at line 236 of file ImageMetric.cxx.

double ImageMetric::distance_squared ( const vgl_homg_point_2d< double > &  p1,
const vgl_homg_point_2d< double > &  p2 
) const [virtual, inherited]

Get perpendicular distance in image.

Reimplemented in SimilarityMetric.

Definition at line 215 of file ImageMetric.cxx.

double ImageMetric::distance_squared ( vgl_line_segment_2d< double > const &  segment,
vgl_homg_line_2d< double > const &  line 
) const [virtual, inherited]

Get distance between a line segment and an infinite line.

The metric used is the maximum of the two endpoint perp distances.

Reimplemented in SimilarityMetric.

Definition at line 228 of file ImageMetric.cxx.

virtual vnl_double_3x3 AffineMetric::get_C ( ) const [inline, virtual]

Return forward transformation matrix.

Reimplemented from ImageMetric.

Definition at line 52 of file AffineMetric.h.

virtual vnl_double_3x3 AffineMetric::get_C_inverse ( ) const [inline, virtual]

Return inverse transformation matrix.

Reimplemented from ImageMetric.

Definition at line 55 of file AffineMetric.h.

HomgLineSeg2D ImageMetric::homg_line_to_image ( const HomgLineSeg2D l) const [virtual, inherited]

Definition at line 155 of file ImageMetric.cxx.

vgl_line_segment_2d< double > ImageMetric::homg_line_to_image ( vgl_line_segment_2d< double > const &  l) const [virtual, inherited]

Convert homogeneous line segment in conditioned coordinates to one in image coordinates.

Definition at line 147 of file ImageMetric.cxx.

vgl_point_2d< double > AffineMetric::homg_to_image ( vgl_homg_point_2d< double > const &  p) const [virtual]

Convert conditioned point p to image coordinates.

Reimplemented from ImageMetric.

Definition at line 118 of file AffineMetric.cxx.

vnl_double_2 AffineMetric::homg_to_image ( const HomgPoint2D p) const [virtual]

Convert conditioned point p to image coordinates.

Reimplemented from ImageMetric.

Definition at line 124 of file AffineMetric.cxx.

double ImageMetric::homg_to_image_distance ( double  image_distance) const [virtual, inherited]

Convert a distance in image coordinates to one in conditioned coordinates.

This is only possible for similarity transformations, but where it does make sense it can mean significant increases in speed.

Reimplemented in SimilarityMetric.

Definition at line 258 of file ImageMetric.cxx.

vgl_homg_line_2d< double > ImageMetric::homg_to_image_line ( vgl_homg_line_2d< double > const &  l) const [virtual, inherited]

Convert homogeneous line in conditioned coordinates to one in image coordinates.

Definition at line 93 of file ImageMetric.cxx.

HomgLine2D ImageMetric::homg_to_image_line ( const HomgLine2D l) const [virtual, inherited]

Definition at line 106 of file ImageMetric.cxx.

vgl_homg_point_2d< double > AffineMetric::homg_to_imagehomg ( vgl_homg_point_2d< double > const &  p) const [virtual]

Convert homogeneous point in conditioned coordinates to one in image coordinates.

Reimplemented from ImageMetric.

Definition at line 69 of file AffineMetric.cxx.

HomgPoint2D AffineMetric::homg_to_imagehomg ( const HomgPoint2D p) const [virtual]

Transform p.

Reimplemented from ImageMetric.

Definition at line 75 of file AffineMetric.cxx.

vgl_homg_point_2d< double > AffineMetric::image_to_homg ( vgl_point_2d< double > const &  p) const [virtual]

Condition the 2D point p.

Default implementation is simply to return p in homogeneous coordinates

Reimplemented from ImageMetric.

Definition at line 92 of file AffineMetric.cxx.

HomgPoint2D AffineMetric::image_to_homg ( const vnl_double_2 &  p) const [virtual]

Condition the 2D point p.

Default implementation is simply to return p in homogeneous coordinates

Reimplemented from ImageMetric.

Definition at line 112 of file AffineMetric.cxx.

HomgPoint2D AffineMetric::image_to_homg ( double  x,
double  y 
) const [virtual]

Condition 2D point (x,y).

Reimplemented from ImageMetric.

Definition at line 102 of file AffineMetric.cxx.

double ImageMetric::image_to_homg_distance ( double  image_distance) const [virtual, inherited]

Convert a distance in image coordinates to one in conditioned coordinates.

This is only possible for similarity transformations, but where it does make sense it can mean significant increases in speed.

Reimplemented in SimilarityMetric.

Definition at line 267 of file ImageMetric.cxx.

vgl_homg_line_2d< double > ImageMetric::image_to_homg_line ( vgl_homg_line_2d< double > const &  l) const [virtual, inherited]

Definition at line 119 of file ImageMetric.cxx.

HomgLine2D ImageMetric::image_to_homg_line ( const HomgLine2D l) const [virtual, inherited]

Definition at line 132 of file ImageMetric.cxx.

HomgLineSeg2D ImageMetric::image_to_homg_line ( const HomgLineSeg2D l) const [virtual, inherited]

Definition at line 170 of file ImageMetric.cxx.

vgl_line_segment_2d< double > ImageMetric::image_to_homg_line ( vgl_line_segment_2d< double > const &  l) const [virtual, inherited]

Definition at line 163 of file ImageMetric.cxx.

vgl_homg_point_2d< double > AffineMetric::imagehomg_to_homg ( vgl_homg_point_2d< double > const &  p) const [virtual]

Inverse-transform p.

Reimplemented from ImageMetric.

Definition at line 81 of file AffineMetric.cxx.

HomgPoint2D AffineMetric::imagehomg_to_homg ( const HomgPoint2D p) const [virtual]

Inverse-transform p.

Reimplemented from ImageMetric.

Definition at line 87 of file AffineMetric.cxx.

virtual bool AffineMetric::is_linear ( ) const [inline, virtual]

Declare that this is a linear transformation.

Reimplemented from ImageMetric.

Definition at line 58 of file AffineMetric.h.

bool ImageMetric::is_within_distance ( const HomgPoint2D p1,
const HomgPoint2D p2,
double  distance 
) const [virtual, inherited]

Definition at line 250 of file ImageMetric.cxx.

bool ImageMetric::is_within_distance ( vgl_homg_point_2d< double > const &  p1,
vgl_homg_point_2d< double > const &  p2,
double  distance 
) const [virtual, inherited]

Definition at line 243 of file ImageMetric.cxx.

double ImageMetric::perp_dist_squared ( const HomgPoint2D p,
const HomgLine2D l 
) const [virtual, inherited]

Reimplemented in SimilarityMetric.

Definition at line 186 of file ImageMetric.cxx.

double ImageMetric::perp_dist_squared ( vgl_homg_point_2d< double > const &  p,
vgl_homg_line_2d< double > const &  l 
) const [virtual, inherited]

Compute perpendicular distance in image coordinates between point p and line l, expressed in conditioned coordinates.

Reimplemented in SimilarityMetric.

Definition at line 180 of file ImageMetric.cxx.

HomgPoint2D ImageMetric::perp_projection ( const HomgLine2D l,
const HomgPoint2D p 
) const [virtual, inherited]

Definition at line 201 of file ImageMetric.cxx.

vgl_homg_point_2d< double > ImageMetric::perp_projection ( vgl_homg_line_2d< double > const &  l,
vgl_homg_point_2d< double > const &  p 
) const [virtual, inherited]

Project point onto line.

Definition at line 192 of file ImageMetric.cxx.

vcl_ostream & AffineMetric::print ( vcl_ostream &  s) const [virtual]

Send a human-readable representation to ostream.

print to vcl_ostream.

Reimplemented from ImageMetric.

Definition at line 133 of file AffineMetric.cxx.

void AffineMetric::set ( vnl_double_3x3 const &  A)

Definition at line 40 of file AffineMetric.cxx.

void AffineMetric::set ( vnl_matrix< double > const &  A)
void AffineMetric::set ( double  a11,
double  a13,
double  a22,
double  a23,
double  a33 
)

set [a11 0 a13; 0 a22 a23; 0 0 a33].

Definition at line 49 of file AffineMetric.cxx.


Friends And Related Function Documentation

vcl_ostream& operator<< ( vcl_ostream &  o,
const ImageMetric m 
) [friend, inherited]

Definition at line 109 of file ImageMetric.h.


Member Data Documentation

Definition at line 26 of file AffineMetric.h.

Definition at line 27 of file AffineMetric.h.


The documentation for this class was generated from the following files: