//--------------------------------------------------------------------------- #ifndef imageproH #define imageproH //--------------------------------------------------------------------------- class imagepro { private: void CopyList(int *source, int *target, int n); double aveDCount(int* pX, int* pY, int l); double energyCont(double ave, int i, int* pX, int* pY, int xs, int ys, int l); double energyCurv(int i, int* pX, int* pY, int xs, int ys, int l); double energyIm(int i, int* pX, int* pY, int xs, int ys); public: //Copies TImage object data to unsigned char * void CopyImageToPtr(TImage *Image, unsigned char *Ptr); //Copies data of unsigned char * to TImage object void CopyPtrToImage(unsigned char *Ptr, TImage *Image); //constructor, destructor imagepro(); ~imagepro(); //variables unsigned char *img; //original image data unsigned char *wrk; //image data to work on int H, W; //image height & width int *S; // sobel result unsigned char *dS; //sobel result to display unsigned char *B; // blurring result int nOfIterations; //the number of iterations (overall) int fcounter; int *xL; //list of X coordinates; int *yL; //list of Y coordinates; int nOfPts; //the number of points in the list //functions void LoadBMPImage(TImage *currImage, AnsiString fname); void SobelOperator(TImage *dImage); void BlurImage(TImage *dImage); int ReturnIntensity(int x, int y); int ReturnImageIntensity(int x, int y); void SaveBitmapImage(TImage *Image, AnsiString fname); void Algorithm(TImage *dImage, double alpha, double beta, double gamma, int nbhood, int distance); void SnakeIterations(TImage *dispImage, double alpha, double beta, double gamma, int nbhood); bool CalculateNewListPoints(int min_distance); void FirstPointToList(int x, int y, TListBox *lbox); void AddPointToList(int x, int y, TListBox *lbox); bool AddPointInBetweenList(int pos); void RemoveLastPixelFromList(TListBox *lbox, TImage *dImage); void DrawX(int x, int y, int s, TImage *dImage); void DrawLine(int x1, int x2, int y1, int y2, TImage *dImage); void DisplaySnakeResult(TImage *dImage, unsigned char *ptr, int mode); }; //--------------------------------------------------------------------------- #endif