Bibliothèque de traitements d'images en virgule flottante.
http://la.buvette.org/photos/cumul/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.8 KiB
109 lines
2.8 KiB
/* |
|
* floatimg.h |
|
*/ |
|
|
|
#define FIMG_VERSION 75 |
|
|
|
/* |
|
* in memory descriptor |
|
*/ |
|
typedef struct { |
|
int width; |
|
int height; |
|
int type; |
|
float fval; |
|
int count; |
|
|
|
float *R, *G, *B, *A; |
|
|
|
int reserved; |
|
} FloatImg; |
|
|
|
/* |
|
* fimg file header |
|
*/ |
|
typedef struct { |
|
char magic[8]; |
|
int w, h, t; |
|
} FimgFileHead; |
|
|
|
|
|
#define FIMG_TYPE_GRAY 1 |
|
#define FIMG_TYPE_RGB 3 |
|
#define FIMG_TYPE_RGBA 4 |
|
|
|
#define FILE_TYPE_FIMG 1 |
|
#define FILE_TYPE_PNM 2 |
|
#define FILE_TYPE_PNG 3 |
|
|
|
/* |
|
* core module |
|
*/ |
|
int fimg_create(FloatImg *fimg, int w, int h, int t); |
|
int fimg_destroy(FloatImg *fimg); |
|
int fimg_clone(FloatImg *fimg, FloatImg *newpic, int flags); |
|
|
|
int fimg_print_version(int k); |
|
void fimg_printhead(FloatImg *h); |
|
int fimg_describe(FloatImg *head, char *txt); |
|
char *fimg_str_type(int type); |
|
int fimg_fileinfo(char *fname, int *datas); |
|
int fimg_plot_rgb (FloatImg *head, int x, int y, float r, float g, float b); |
|
int fimg_clear(FloatImg *fimg); |
|
int fimg_add_rgb(FloatImg *head, int x, int y, float r, float g, float b); |
|
int fimg_rgb_constant(FloatImg *head, float r, float g, float b); |
|
|
|
|
|
int fimg_images_compatible(FloatImg *a, FloatImg *b); |
|
|
|
int fimg_interpolate(FloatImg *s1, FloatImg *s2, FloatImg *d, float coef); |
|
|
|
/* 'operats' module */ |
|
int fimg_add(FloatImg *a, FloatImg *b, FloatImg *d); |
|
int fimg_sub(FloatImg *a, FloatImg *b, FloatImg *d); |
|
int fimg_mul(FloatImg *a, FloatImg *b, FloatImg *d); |
|
|
|
/* PNM files module */ |
|
int fimg_save_as_pnm(FloatImg *head, char *fname, int flags); |
|
int fimg_load_from_pnm(char *fname, FloatImg *head, int notused); |
|
|
|
double fimg_timer_set(int whot); |
|
double fimg_timer_get(int whot); |
|
|
|
/* --> lib/contrast.c */ |
|
int fimg_square_root(FloatImg *s, FloatImg *d, double maxval); |
|
int fimg_power_2(FloatImg *s, FloatImg *d, double maxval); |
|
int fimg_cos_01(FloatImg *s, FloatImg *d, double maxval); |
|
|
|
|
|
int fimg_mk_gray_from(FloatImg *src, FloatImg*dst, int k); |
|
|
|
/* FIMG files module */ |
|
int fimg_fileinfos(char *fname, int *datas); |
|
int fimg_dump_to_file(FloatImg *head, char *fname, int notused); |
|
int fimg_create_from_dump(char *fname, FloatImg *head); |
|
|
|
/* mathematics operations */ |
|
float fimg_get_maxvalue(FloatImg *head); |
|
int fimg_meanvalues(FloatImg *head, float means[4]); |
|
int fimg_to_gray(FloatImg *head); |
|
void fimg_add_cste(FloatImg *fi, float value); |
|
void fimg_mul_cste(FloatImg *fi, float value); |
|
void fimg_drand48(FloatImg *fi, float kmul); |
|
int fimg_count_negativ(FloatImg *fi); |
|
|
|
/* various funcs modules */ |
|
int fimg_load_from_png(char *filename, FloatImg *fimg); |
|
int fimg_create_from_png(char *filename, FloatImg *fimg); |
|
int fimg_save_as_png(FloatImg *src, char *outname, int flags); |
|
|
|
int fimg_draw_something(FloatImg *fimg); |
|
|
|
int parse_WxH(char *str, int *pw, int *ph); |
|
int parse_double(char *str, double *dptr); |
|
int format_from_extension(char *fname); |
|
|
|
|
|
|
|
|
|
|
|
|