00001 #ifndef POL_LOCATOR_SCALE_H 00002 #define POL_LOCATOR_SCALE_H 00003 00004 #include "mimasconfig.h" 00005 00006 #include <boost/numeric/ublas/vector.hpp> 00007 #include <list> 00008 #include "pol_locator_hough.h" 00009 00010 namespace mimas { 00020 class pol_scale_info 00021 { 00022 public: 00023 typedef boost::numeric::ublas::vector< double > Vector; 00024 float weight; 00025 float scale; 00026 00027 pol_scale_info() 00028 { scale=weight=0; } 00029 pol_scale_info(int i) 00030 { scale=(float)i; weight=0; } 00031 00032 operator int() 00033 { 00034 return (int)(scale/weight); 00035 } 00036 00037 }; 00038 00039 class pol_locator_scale : public pol_locator_hough 00040 { 00046 private: 00047 image<pol_scale_info> scale_im; 00052 public: 00053 00060 pol_locator_scale(double d) : pol_locator_hough(d*8.0) //use 8 for +-50% 00061 //use 2 for +- 5% 00062 {} 00063 00064 void addEntry( double weight, ... ); 00065 void init(int numdims,...); 00066 pol_match_ptr_list getMatches(); 00067 00068 }; 00069 00070 } 00071 00072 #endif 00073