mhistobpb_u1.c

00001 /*
00002 *    Copyright (c) 2007. The BATI team. All right reserved.
00003 *
00004 *    This file is part of BATI library.
00005 *
00006 *    BATI library is free software: you can redistribute it and/or modify
00007 *    it under the terms of the GNU General Public License as published by
00008 *    the Free Software Foundation, either version 3 of the License, or
00009 *    (at your option) any later version.
00010 *
00011 *    BATI library  is distributed in the hope that it will be useful,
00012 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 *    GNU General Public License for more details.
00015 *
00016 *    You should have received a copy of the GNU General Public License
00017 *    along with BATI library.  If not, see <http://www.gnu.org/licenses/>.
00018 */
00034 #include "image.h"    /* types des donnees manipulees dans ima2D */
00035 #include "proto2D.h"  /* descripteurs et prototypes des fonctions de ima2D */
00036 #include "histo.h"    /* complement pour les operateurs en cours de developpt */ 
00037 
00038 int main(int argc, char *argv[]){
00039 
00040 /* DECLARATIONS */
00041   /* images */ 
00042   imau1 bl0;
00043   imau1 mas;
00044 
00045   /* operateurs */
00046   select_ima_t sel, selmas;
00047   histo_t hist; 
00048 
00049   /* main : variables et parametres propres au main*/
00050   param par0, *ptp;      /* tete et pointeur pour la chaine de parametres */
00051   char nommas[200];
00052   int l; 
00053 
00054 /* LECTURE PARAMETRES */
00055 
00056   /* debut: OBLIGATOIRE pour compatibilite avec les 3 modes de lecture de param */
00057   param_debut(argc, argv, &par0); 
00058   ptp = &par0;
00059   ptp = select_ima_lect(&sel, ptp, ">> image initiale :");
00060   ptp = histo_lect(&hist, ptp, ">> histograme :");
00061   lec_param(">> nom image masque type u1 (.ima|.ras), 0 si aucun masque :", ptp);
00062   strcpy(nommas, ptp->rep);
00063   ptp = ptp->next;
00064   if( hist.ngm >= 0){
00065       selmas = sel;
00066       l = strlen(nommas);
00067       do
00068           l--;
00069       while(nommas[l] != '.'  && l>0);
00070       if( l>0 ){
00071           strncpy(selmas.nom, nommas, l);
00072           selmas.nom[l] = '\0';
00073           strcpy(selmas.ext, nommas+l+1);
00074       }
00075       else{
00076           printf("\n>>mhistobpb_u1 ERREUR : nom image masque incomplet (extension?)\n");
00077           exit(1);
00078       }
00079   }
00080   param_fin(argc, argv, &par0);
00081 
00082 /* INITIALISATION  */
00083 
00084   /* operateur */
00085   select_imau1_init(&sel, &bl0);
00086   if( hist.ngm >= 0){
00087       select_imau1_init(&selmas, &mas);
00088   }
00089   histou1_init(&hist, bl0, mas);
00090 
00091 
00092 /* CALCUL */
00093   while( select_imau1_calc(&sel, &bl0) == 0){
00094       if( hist.ngm >= 0){
00095           if(select_imau1_calc(&selmas, &mas) != 0 ){
00096               printf("\n>>mhistobpb_u1 ERREUR : fin du masque avant fin image\n");
00097               break;
00098           }     
00099       }
00100       histou1_calc(&hist, bl0, mas); 
00101   }
00102 
00103 /* FREMETURE */
00104   histo_ferm(&hist);
00105 }
00106 

Generated on Tue Apr 22 13:31:04 2008 for ima2D by  doxygen 1.5.3