Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes
AprilTags::Quad Class Reference

Represents four segments that form a loop, and might be a tag. More...

#include <Quad.h>

List of all members.

Public Member Functions

std::pair< float, float > interpolate (float x, float y)
 Interpolate given that the lower left corner of the lower left cell is at (-1,-1) and the upper right corner of the upper right cell is at (1,1).
std::pair< float, float > interpolate01 (float x, float y)
 Same as interpolate, except that the coordinates are interpreted between 0 and 1, instead of -1 and 1.
 Quad (const std::vector< std::pair< float, float > > &p, const std::pair< float, float > &opticalCenter)
 Constructor.

Static Public Member Functions

static void search (const FloatImage &fImage, std::vector< Segment * > &path, Segment &parent, int depth, std::vector< Quad > &quads, const std::pair< float, float > &opticalCenter)
 Searches through a vector of Segments to form Quads.

Public Attributes

Homography33 homography
 Given that the whole quad spans from (0,0) to (1,1) in "quad space", compute the pixel coordinates for a given point within that quad.
float observedPerimeter
 Total length (in pixels) of the actual perimeter observed for the quad.
std::vector< std::pair< float,
float > > 
quadPoints
 Points for the quad (in pixel coordinates), in counter clockwise order. These points are the intersections of segments.
std::vector< Segment * > segments
 Segments composing this quad.

Static Public Attributes

static float const maxQuadAspectRatio = 32
 Early pruning of quads with insane ratios.
static const int minimumEdgeLength = 6
 Minimum size of a tag (in pixels) as measured along edges and diagonals.

Private Attributes

Eigen::Vector2f p0
Eigen::Vector2f p01
Eigen::Vector2f p3
Eigen::Vector2f p32

Detailed Description

Represents four segments that form a loop, and might be a tag.

Definition at line 20 of file Quad.h.


Constructor & Destructor Documentation

AprilTags::Quad::Quad ( const std::vector< std::pair< float, float > > &  p,
const std::pair< float, float > &  opticalCenter 
)

Constructor.

(x,y) are the optical center of the camera, which is needed to correctly compute the homography.

Definition at line 13 of file Quad.cc.


Member Function Documentation

std::pair< float, float > AprilTags::Quad::interpolate ( float  x,
float  y 
)

Interpolate given that the lower left corner of the lower left cell is at (-1,-1) and the upper right corner of the upper right cell is at (1,1).

Definition at line 37 of file Quad.cc.

std::pair< float, float > AprilTags::Quad::interpolate01 ( float  x,
float  y 
)

Same as interpolate, except that the coordinates are interpreted between 0 and 1, instead of -1 and 1.

Definition at line 48 of file Quad.cc.

void AprilTags::Quad::search ( const FloatImage fImage,
std::vector< Segment * > &  path,
Segment parent,
int  depth,
std::vector< Quad > &  quads,
const std::pair< float, float > &  opticalCenter 
) [static]

Searches through a vector of Segments to form Quads.

Definition at line 52 of file Quad.cc.


Member Data Documentation

Given that the whole quad spans from (0,0) to (1,1) in "quad space", compute the pixel coordinates for a given point within that quad.

Note that for most of the Quad's existence, we will not know the correct orientation of the tag.

Definition at line 51 of file Quad.h.

const float AprilTags::Quad::maxQuadAspectRatio = 32 [static]

Early pruning of quads with insane ratios.

Definition at line 23 of file Quad.h.

const int AprilTags::Quad::minimumEdgeLength = 6 [static]

Minimum size of a tag (in pixels) as measured along edges and diagonals.

Definition at line 22 of file Quad.h.

Total length (in pixels) of the actual perimeter observed for the quad.

This is in contrast to the geometric perimeter, some of which may not have been directly observed but rather inferred by intersecting segments. Quads with more observed perimeter are preferred over others.

Definition at line 47 of file Quad.h.

Eigen::Vector2f AprilTags::Quad::p0 [private]

Definition at line 65 of file Quad.h.

Eigen::Vector2f AprilTags::Quad::p01 [private]

Definition at line 65 of file Quad.h.

Eigen::Vector2f AprilTags::Quad::p3 [private]

Definition at line 65 of file Quad.h.

Eigen::Vector2f AprilTags::Quad::p32 [private]

Definition at line 65 of file Quad.h.

std::vector< std::pair<float,float> > AprilTags::Quad::quadPoints

Points for the quad (in pixel coordinates), in counter clockwise order. These points are the intersections of segments.

Definition at line 37 of file Quad.h.

Segments composing this quad.

Definition at line 40 of file Quad.h.


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


apriltags
Author(s): Mitchell Wills
autogenerated on Thu Aug 27 2015 12:23:28