www.pudn.com > segmentaion.rar > WaterSeg.h


#include  
#include  
#include  
#include  
#include  
#include   
#include  
#include  
#include  
#include  
 
using namespace std; 
 
typedef struct Node 
{ 
	int pixelSize; 
	deque  pixelIndex; 
	unsigned char meanColor[3]; 
	int curveLength; 
	float meanCurvature; 
	deque  curvature; 
	deque  bdyIndex; 
 
} Node; 
 
typedef struct Link 
{ 
	int nod1; 
	int nod2; 
	float dissimilarity; 
	float meanCurvatureOfMerge; 
	int curveLengthOfMerge; 
} Link; 
 
 
int WaterSeg(unsigned char**,unsigned char**, int,int,int,int, int,int*); 
int Watershed(int **, char **, int **, int , int ); 
void getGradient(unsigned char* , unsigned char* , int , int ); 
void LabelToRgb(int*, int, char*, int, int); 
void getMarker(unsigned char* , unsigned char* , unsigned char* , int , int , int ); 
void imErode(unsigned char* , unsigned char* , int , int , vector * ,vector * ); 
void imDilate(unsigned char* , unsigned char* , int , int , vector * ,vector * ); 
 
void getRegMax(unsigned char* ,unsigned char*, int, int); 
void getNeighbor(int, int, int, int*); 
void getNeighborReorder(int, int, int, int*); 
void getFourNeighbor(int, int, int, int*); 
void getTrailingNeighbor(int, int, int, int*); 
void getLeadingNeighbor(int, int, int, int*); 
void imReconstruct(unsigned char*, unsigned char*, int, int); 
void getBoundary(int*, unsigned char*,int ,int); 
int LabelFusion(int**, int, int, int* ); 
 
int regionMerge(int* ,int , int , int , unsigned char**,int,int); 
int labelOfNeighbor(int* ,Node* , int , int, int*); 
int minIndex(int*, int ); 
int minDissimilarIndex(Link* , int ); 
void mergeTwoRegions(Link*, Node*, int*); 
void mergeTwoRegions(Link* ,Node* ,int* ,int , int , int , int* ); 
 
void getNodCurv(Node* ,int*,int,int, int*); 
void getNodCurv(Node* , Node* , int* ,int ,int , float* , int* ); 
bool checkOutsideBoundary(int,int, int* , int, int); 
bool checkInsideBoundary(int,int, int* , int, int); 
void getDissimilarity(Link*, Node*, int* , int*,int, int,int); 
void getCurvature(int* ,int*, int, deque *); 
void getDCurvature(int* , int* , int , deque * ); 
 
double autoThreshold(double*, int); 
int getOptResult(double*,double*,int);