//************************************************************
//	Copyright (c) 1995
// 	Realise par l'equipe d'Analyse d'Images
//	Laboratoire de Traitement du Signal et Instrumentation
//	Universite de Saint-Etienne
//	France
//************************************************************


#ifndef CONTOUR
#define CONTOUR

extern "C"
{
#include "image.h"
#include "liste.h"
}

// fichier contour.cpp
Image BlancR(Image imS, Image imD);
Image CreeImCont(Image imC,Liste *lis);
Image TraceImCont(Image imC, Image imS,Image imD);
Image TraceContour (Image imC,Image imS,Image imD);
int CreeListe(Image imC,Liste *lis);
void Lire(Liste *lis, Liste *con );
void Ecrire(Liste *c, Liste *lis);
Image CreeContoursR(Image imS, Image imD,int drapeau);

// fichier Mescont.cpp
int Aire(Liste *con);
int Perimetre(Liste *con);
float Niveau(Liste *con);
void PointCG(Liste *con,float *XCG, float *YCG, Fenetre *fenetre, float *dMin,float *dMax,int drapeau);
Image FiltreAireR( Image imS,Image imD,int aireMin,int aireMax);
Image FiltrePerR( Image imS,Image imD,int perMin,int perMax);
Image FiltreNiveauR( Image imS,Image imD,float nivMin,float nivMax);
Image FiltreCircR (Image imS,Image imD, float circMin,float circMax);
Reel MoyContourR(Image imS,Liste *cont,int front);
int FenetreCirc(Liste *contour,Fenetre *fenetre);
Image TraceImagetteContR(Image imD,Liste *contour,int drapeau);
int Covariance(Liste *contour,double *covXX,double *covXY,double *covYY);
int AxesPrincipaux(Liste *contour,double *axe1X,double *axe1Y,double *axe2X,double *axe2Y);
int CovarSurAxes(Liste *contour,double axe1X,double axe1Y,double *covXX,double *covXY,double *covYY);
int DirPrincipale(Liste *contour,double *angle,double *excent);
int DiametreDir(Liste *contour,double angle,double *diam);
int DiametreFeret(Liste *contour,int nbdir,double *diam);
int DiametreMinMax(Liste *contour,int nbdir,double *dMin,double *dMax, double *coefAlgt);
float Concavite(Liste *contour);
Image CarteConcaviteR(Image imS,Image imD);
Image FiltreDiamAllongR(Image imS,Image imD,float dmin,float dmax,float emin,float emax);
Image FiltreConcaviteR(Image imS,Image imD,float cmin,float cmax);




// fichier Fichmes.cpp
int FMesureContR(Image imS,FILE *text);

#endif
