#ifndef IMAGE_H #define IMAGE_H /*- TAD: Imagem: uma Imagem RGB ---------------*/ typedef struct image_imp * Image; /* uma imagem RGB */ typedef struct img_statistics_imp * ImgStatistics; typedef struct sequence_imp * Sequence; /* uma sequencia de imagens BGR */ typedef struct map_imp * Map; /* uma imagem em ponto flutuante */ /*- Interface imagem --------------*/ Image imgCreate (int w, int h); void imgDestroy (Image img); unsigned char* imgGetBuffer(Image img); void imgGetDimensions(Image img, int *w, int *h); void imgSetPixel(Image img, int x, int y, unsigned char r, unsigned char g, unsigned char b); void imgGetPixel(Image img, int x, int y, unsigned char *r, unsigned char *g, unsigned char *b); void imgDraw(Image img); void imgClear(Image img); Image imgReadTGA (char *filename); int imgWriteTGA(char *filename, Image img); int imgWriteBMP(char *filename, Image img); int writeRGBtoBMP(char *filename, int width, int height, unsigned char* imgSrc); /*- Interface statisticas --------------*/ ImgStatistics imgStatisticsCreate (int w, int h); void imgStatisticsDestroy (ImgStatistics stat); double* imgStatisticsGetBuffer(ImgStatistics stat); void imgStatisticsSetPixel(ImgStatistics img, int x, int y, double r, double g, double b); void imgStatisticsGetPixel(ImgStatistics img, int x, int y, double *r, double *g, double *b); /* interface video */ Sequence imgCreateSequence(int w, int h, int nframes); void imgDestroySequence (Sequence seq); unsigned char * imgGetFrameBuffer(Sequence seq, int frame_i); Image imgAverage(Sequence seq); void imgGetStatistics(Sequence seq, Image avg, ImgStatistics std_dev, ImgStatistics avg_norm, ImgStatistics norm_std_dev); //ImgStatistics imgStdDev(Sequence seq); //ImgStatistics imgNormAverage(Sequence seq); //ImgStatistics imgNormStdDev(Sequence seq); #endif