00001 #ifndef CGH_H
00002 #define CGH_H
00003
00004 #include <boost/numeric/ublas/vector.hpp>
00005 #include <list>
00006 #include "edge_string.h"
00007 #include "hough_transform.h"
00008 #include "object.h"
00009
00010 namespace mimas {
00011
00025 class cgh : public hough_transform
00026 {
00027 private:
00028 double bin_threshold;
00029 double max_radius;
00030 double min_radius;
00031 int size;
00032
00033 void setup();
00034
00035 public:
00036 typedef std::ifstream ifstream;
00037 typedef std::ofstream ofstream;
00038 typedef boost::numeric::ublas::vector< double > Vector;
00039 typedef boost::numeric::ublas::vector< int > IntVector;
00040 cgh()
00041 {
00042
00043 bin_threshold = 0.1;
00044
00045 min_radius = 2.0;
00046 max_radius = 150.0;
00047 size = 72;
00048
00049 setup();
00050 }
00051
00052 void setMaxRadius( double d ) { max_radius = d; }
00053 void setBinThreshold( double d ) { bin_threshold = d; }
00054 void createFromStrings( edge_string_ptr_list strings,
00055 const Vector &cpos );
00056
00057
00058
00059
00060
00061
00062 };
00063
00064 typedef boost::shared_ptr< cgh > cgh_ptr;
00065
00066 };
00067
00068
00069 #endif