00001 00009 class Nr: public Cc 00010 { 00011 public: 00012 ~Nr(); 00013 vector<Pt> cur; 00014 }; 00015 00019 typedef struct Rc {int r1,r2,s,l;}Rc; 00020 00024 class CCNGraph: public CCLabeling 00025 { 00026 protected: 00027 //member 00028 vector<Nr> nri; 00029 vector<Pt> bound; 00030 vector<Rc> rci; 00031 int ths,smax; 00032 short int *tabs; 00033 //functions I 00034 void NrImgConstruct(); 00035 void NRInit(int); 00036 bool NRLabeling(); 00037 void NRLabelingExtend(Nr &); 00038 Image* GetExtendedImage(); 00039 void PtsDraw(Image *img,vector<Pt> &,int); 00040 //functions II 00041 void NrAnalysis(int,int); 00042 void NodesConstruct(); 00043 void BoundSurfaceAnalysis(); 00044 int RcSearch(Rc); 00045 void BoundSurfaceTabCreate(); 00046 void BoundSurfaceFiltering(); 00047 void EdgesConstruct(); 00048 public: 00049 //members 00050 node_map<GLab> ngnl; //type true cc, false loop 00051 edge_map<bool> ngel; //true include, false neighbor 00052 graph ng; 00053 //functions 00054 CCNGraph(Image*); 00055 ~CCNGraph(); 00056 void NGConstruct(int,int); 00057 Image* GetBoundImage(); 00058 };
1.3