00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00028 #include "image.h"
00029 #include "proto2D.h"
00030 #include "labelcc.h"
00031 #include <stdlib.h>
00032
00033
00034 int main(int argc, char *argv[]){
00035 int i, j;
00036 int tmp;
00037
00038
00039
00040 imau1 im0;
00041 imau2 imres;
00042 imau1 imresu1;
00043
00044 read_ima_t rea;
00045 labelcc_t lab;
00046 write_ima_t wri1;
00047
00048 param par0, *ptp;
00049
00050
00051 param_debut(argc, argv, &par0);
00052 ptp = &par0;
00053
00054 ptp = read_ima_lect(&rea, ptp, ">> image initiale (u1):");
00055 ptp = labelcc_lect(&lab, ptp, ">> etiquetage :");
00056 ptp = write_ima_lect(&wri1, ptp, ">> image resultat, labels (u1/u2) :");
00057
00058 param_fin(argc, argv, &par0);
00059
00060
00061
00062 read_imau1_init(&rea, &im0);
00063 labelccu1_init(&lab, im0, &imres);
00064 write_ima_init(&wri1);
00065
00066
00067 labelccu1_calc(&lab, im0, &imres);
00068 if(strcmp(wri1.ext, "ima") == 0 || strcmp(wri1.ext, "ras") == 0){
00069 imresu1.nr = imres.nr;
00070 imresu1.nc = imres.nc;
00071 alloc_imau1(&imresu1);
00072 for(j=0; j<imres.nr; j++)
00073 for(i=0; i<imres.nc; i++){
00074 if ( (tmp=(int)(imres.p[j][i])) < 256 )
00075 imresu1.p[j][i] = (pixu1)tmp;
00076 else{
00077 tmp = tmp%255;
00078 tmp++;
00079 imresu1.p[j][i] = (pixu1)tmp;
00080 }
00081 }
00082 }
00083
00084
00085 if(strcmp(wri1.ext, "ima") == 0 || strcmp(wri1.ext, "ras") == 0)
00086 write_imau1_ferm(&wri1, imresu1);
00087 else
00088 write_imau2_ferm(&wri1, imres);
00089
00090 }
00091