00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef __proto
00029 #define __proto
00030
00031
00032 #include <stdio.h>
00033 #include "image.h"
00034 #include <stdlib.h>
00035
00036
00037
00038
00039
00040
00041 int param_debut(int argc, char **argv, param *ptp);
00042 int param_fin(int argc, char **argv, param *ptp);
00043
00044
00045 void lec_param(char *chaine, param *ptp);
00046 int flec_param(FILE *fp, param *ptp);
00047 void alloc_param(param *ptp);
00048
00049 void lec_int(int *pt_i, char *chaine);
00050 void lec_float(float *pt_f, char *chaine);
00051 void lec_double(double *pt_d, char *chaine);
00052 void lec_nom(char *pt_nom, char *chaine);
00053 int nom_image_suivante( char *nom0, char *nomres);
00054
00055
00056 int alloc_imau1(imau1 *im);
00057 int alloc_imau1_as(imau1 *modele, imau1 *out);
00058 int alloc_imarvb(imarvb *im);
00059 int alloc_imau2(imau2 *im);
00060 int alloc_imas2(imas2 *im);
00061 int alloc_imau4(imau4 *im);
00062 int alloc_imas4(imas4 *im);
00063 int alloc_imafl(imafl *im);
00064 int alloc_imadb(imadb *im);
00065 int alloc_imacx4(imacx4 *im);
00066 int alloc_imacx8(imacx8 *im);
00067 int alloc_imacx16(imacx16 *im);
00068
00069
00070 int free_imau1(imau1 *im);
00071 int free_imarvb(imarvb *im);
00072 int free_imau2(imau2 *im);
00073 int free_imas2(imas2 *im);
00074 int free_imau4(imau4 *im);
00075 int free_imas4(imas4 *im);
00076 int free_imafl(imafl *im);
00077 int free_imadb(imadb *im);
00078 int free_imacx4(imacx4 *im);
00079 int free_imacx8(imacx8 *im);
00080 int free_imacx16(imacx16 *im);
00081
00082
00083 void conv_TLS_RVB(imarvb *ima_tls, imarvb *ima_rvb);
00084 void conv_RVB_TLS(imarvb *ima_rvb, imarvb *ima_tls);
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00097 typedef struct {
00098 char nom[200];
00099 char ext[10];
00100 }read_ima_t;
00101
00102 param *read_ima_lect(read_ima_t *des, param *ptp, char *debq);
00103 int read_imau1_init(read_ima_t *des, imau1 *im);
00104 int read_imau2_init(read_ima_t *des, imau2 *im);
00105 int read_imau4_init(read_ima_t *des, imau4 *im);
00106 int read_imafl_init(read_ima_t *des, imafl *im);
00107 int read_imacx4_init(read_ima_t *des, imacx4 *im);
00108 int read_imacx8_init(read_ima_t *des, imacx8 *im);
00109 int read_imarvb_init(read_ima_t *des, imarvb *im);
00110
00111
00112
00113
00114
00115
00116
00119 typedef struct {
00120 FILE *pfd;
00121 int dfi;
00122 char nom[200];
00123 char ext[10];
00124 } write_ima_t;
00125
00126 param *write_ima_lect(write_ima_t *des, param *ptp, char *debq);
00127 int write_ima_init(write_ima_t *des);
00128
00129 int write_imau1_ferm(write_ima_t *des, imau1 im);
00130 int write_imau2_ferm(write_ima_t *des, imau2 im);
00131 int write_imau4_ferm(write_ima_t *des, imau4 im);
00132 int write_imafl_ferm(write_ima_t *des, imafl im);
00133 int write_imacx4_ferm(write_ima_t *des, imacx4 im);
00134 int write_imacx8_ferm(write_ima_t *des, imacx8 im);
00135 int write_imarvb_ferm(write_ima_t *des, imarvb im);
00136
00137
00138
00139
00140
00143 typedef struct {
00144 char nom[200];
00145 char ext[10];
00146 int dimX, dimY;
00147 int col0, lig0;
00148 int nb_col, nb_lig;
00149 int nb_bloc;
00150 int dfi;
00151 int next_lig;
00152 int nb_bloc_lu;
00153 int header;
00154 int lut_ng;
00155 } select_ima_t;
00156
00157 param *select_ima_lect(select_ima_t *des, param *ptp, char *debq);
00158
00159 int select_imau1_init(select_ima_t *des, imau1 *im);
00160 int select_imau2_init(select_ima_t *des, imau2 *im);
00161 int select_imau4_init(select_ima_t *des, imau4 *im);
00162 int select_imafl_init(select_ima_t *des, imafl *im);
00163 int select_imacx4_init(select_ima_t *des, imacx4 *im);
00164 int select_imacx8_init(select_ima_t *des, imacx8 *im);
00165
00166 int select_imau1_calc(select_ima_t *des, imau1 *im);
00167 int select_imau2_calc(select_ima_t *des, imau2 *im);
00168 int select_imau4_calc(select_ima_t *des, imau4 *im);
00169 int select_imafl_calc(select_ima_t *des, imafl *im);
00170 int select_imacx4_calc(select_ima_t *des, imacx4 *im);
00171 int select_imacx8_calc(select_ima_t *des, imacx8 *im);
00172
00173
00174
00175
00176
00179 typedef struct {
00180 FILE *pfd;
00181 int dfi;
00182 char nom[200];
00183 char ext[10];
00184 int nb_lig_ecr;
00185 int nb_col_ecr;
00186 char legende[200];
00187 } save_ima_t;
00188
00189
00190 param *save_ima_lect(save_ima_t *des, param *ptp, char *debq);
00191
00192 int save_imau1_init(save_ima_t *des, imau1 im);
00193 int save_ima_init(save_ima_t *des);
00194
00195 int save_imau1_calc(save_ima_t *des, imau1 im);
00196 int save_imau2_calc(save_ima_t *des, imau2 im);
00197 int save_imau4_calc(save_ima_t *des, imau4 im);
00198 int save_imafl_calc(save_ima_t *des, imafl im);
00199 int save_imacx4_calc(save_ima_t *des, imacx4 im);
00200 int save_imacx8_calc(save_ima_t *des, imacx8 im);
00201
00202 int save_ima_ferm(select_ima_t sel, save_ima_t des);
00203
00204
00205
00206
00207
00208
00209
00210
00211
00214 typedef struct {
00215 int dimX, dimY;
00216 pixu4 *tmpcolu4;
00217 double *tmpcoldb;
00218 } moy2D_t;
00219
00220 param *moy2D_lect(moy2D_t *des, param *ptp, char *debq);
00221 int moy2Du1_init(moy2D_t *des, imau1 im0, imau1 *imres);
00222 int moy2Du2_init(moy2D_t *des, imau2 im0, imau2 *imres);
00223 int moy2Dfl_init(moy2D_t *des, imafl im0, imafl *imres);
00224 int moy2Ddb_init(moy2D_t *des, imadb im0, imadb *imres);
00225 int moy2Du1_calc(moy2D_t *des, imau1 im0, imau1 *imres);
00226 int moy2Du2_calc(moy2D_t *des, imau2 im0, imau2 *imres);
00227 int moy2Dfl_calc(moy2D_t *des, imafl im0, imafl *imres);
00228 int moy2Ddb_calc(moy2D_t *des, imadb im0, imadb *imres);
00229
00230
00231
00232
00235 typedef struct {
00236 int dimX, dimY;
00237 double *tab;
00238 double *tmplig;
00239 double *tmpcol;
00240 } moycarre2D_t;
00241
00242 param *moycarre2D_lect(moycarre2D_t *des, param *ptp, char *debq);
00243
00244 int moycarre2Du1_init(moycarre2D_t *des, imau1 im0, imafl *imres);
00245 int moycarre2Du2_init(moycarre2D_t *des, imau2 im0, imafl *imres);
00246 int moycarre2Dfl_init(moycarre2D_t *des, imafl im0, imafl *imres);
00247 int moycarre2Ddb_init(moycarre2D_t *des, imadb im0, imadb *imres);
00248
00249 int moycarre2Du1_calc(moycarre2D_t *des, imau1 im0, imafl *imres);
00250 int moycarre2Du2_calc(moycarre2D_t *des, imau2 im0, imafl *imres);
00251 int moycarre2Dfl_calc(moycarre2D_t *des, imafl im0, imafl *imres);
00252 int moycarre2Ddb_calc(moycarre2D_t *des, imadb im0, imadb *imres);
00253
00254
00255
00256
00257
00260 typedef struct {
00261 char *nom;
00262 pixu1 *lutr, *lutv, *lutb;
00263 } add_colormap_t;
00264
00265 param * add_colormap_lect(add_colormap_t *des, param * ptp, char * debq);
00266 int add_colormap_init(add_colormap_t *des);
00267 int add_colormap_calc(add_colormap_t *des, imau1 *ima);
00268 int free_lut_u1(imau1 *im);
00269 int alloc_lut_u1(imau1 *im);
00270
00271 short breshenham( imau1 *image,short x1, short y1, short x2,short y2,short intensity);
00272
00273
00274 #endif