Quad.h
Go to the documentation of this file.
00001 #ifndef QUAD_H
00002 #define QUAD_H
00003 
00004 #include <utility>
00005 #include <vector>
00006 
00007 #include <Eigen/Dense>
00008 
00009 #include "Homography33.h"
00010 
00011 namespace AprilTags {
00012 
00013 class FloatImage;
00014 class Segment;
00015 
00016 using std::min;
00017 using std::max;
00018 
00020 class Quad {
00021 public:
00022   static const int minimumEdgeLength = 6; 
00023   static float const maxQuadAspectRatio; 
00024 
00026 
00028   Quad(const std::vector< std::pair<float,float> >& p, const std::pair<float,float>& opticalCenter);
00029 
00031   std::pair<float,float> interpolate(float x, float y);
00032 
00034   std::pair<float,float> interpolate01(float x, float y);
00035 
00037   std::vector< std::pair<float,float> > quadPoints;
00038 
00040   std::vector<Segment*> segments;
00041 
00043 
00047   float observedPerimeter;
00048 
00050 
00051   Homography33 homography;
00052 
00054   /*  @param quads any discovered quads will be added to this list
00055    *  @param path  the segments currently part of the search
00056    *  @param parent the first segment in the quad
00057    *  @param depth how deep in the search are we?
00058    */
00059   static void search(const FloatImage& fImage, std::vector<Segment*>& path,
00060                      Segment& parent, int depth, std::vector<Quad>& quads,
00061                      const std::pair<float,float>& opticalCenter);
00062 
00063 #ifdef INTERPOLATE
00064  private:
00065   Eigen::Vector2f p0, p3, p01, p32;
00066 #endif
00067 
00068 };
00069 
00070 } // namespace
00071 
00072 #endif


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