/*************************************************************************************************************************************/ /* */ /* E G A L I S A T I O N D E L ' H I S T O G R A M M E D ' U N E I M A G E : */ /* */ /* */ /* Author of '$xci/egaliseH.01$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20081001141130). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* I N T E R F A C E ' listG ' : */ /* */ /* */ /* :Debut_listG: */ /* :Fin_listG: */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D I R E C T I V E S S P E C I F I Q U E S D E C O M P I L A T I O N : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F I C H I E R S D ' I N C L U D E S : */ /* */ /*************************************************************************************************************************************/ #include INCLUDES_BASE #include image_image_IMAGESF_EXT #include image_image_ALEATOIRES_1_EXT /* Introduit le 20081008114457... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #include xci/substitue.01.I" /* Introduit le 20081008161133... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #include xci/substitue.02.I" /* Introduit le 20081008161133... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* E G A L I S A T I O N D E L ' H I S T O G R A M M E D ' U N E I M A G E : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE)); #include xci/substitue.03.I" /* Introduit le 20081008161133... */ /*..............................................................................................................................*/ GET_ARGUMENTSv(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA); GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_L("standard=",les_images_sont_standards); /* Cette possibilite fut introduite le 20081001165752... */ GET_ARGUMENT_C("substitution=""s=",nom_substitution); GET_ARGUMENT_C("paletteA=""palette=""pA=""p=",nom_paletteA); /* Parametres introduits le 20081008161133... */ GET_ARGUMENT_L("effectif=" ,Iegalisation_d_histogrammme_____utiliser_l_histogramme_effectif_de_l_imageA ); GET_ARGUMENT_N("plat=" ,Iegalisation_d_histogrammme_____utiliser_l_histogramme_effectif_de_l_imageA ); /* Cette possibilite fut introduite le 20081007190144... */ GET_ARGUMENT_L("egaliser=""egalisation=""egal=" ,Iegalisation_d_histogrammme_effectif_____faire_l_egalisation ); /* Cette possibilite fut introduite le 20081005182043... */ GET_ARGUMENT_L("editer=""lister=" ,Iegalisation_d_histogrammme_effectif_____editer_la_transformation_d_egalisation ); /* Cette possibilite fut introduite le 20081006161444... */ GET_ARGUMENT_L("substituer_histogrammme_avant=""substituer_avant=""savant=" ,Iegalisation_d_histogrammme_effectif_____substituer_suivant_l_histogrammme_avant_egalisation ); GET_ARGUMENT_L("substituer_histogrammme_apres=""substituer_apres=""sapres=" ,Iegalisation_d_histogrammme_effectif_____substituer_suivant_l_histogrammme_apres_egalisation ); /* Ces possibilites furents introduites le 20081005110341 et le 20081005121114... */ /* */ /* On notera le 20081005183522 que : */ /* */ /* effectif=VRAI */ /* egaliser=FAUX */ /* substituer_histogrammme_avant=VRAI */ /* substituer_histogrammme_apres=VRAI */ /* */ /* de meme que : */ /* */ /* effectif=VRAI */ /* egaliser=FAUX */ /* substituer_histogrammme_avant=FAUX */ /* substituer_histogrammme_apres=FAUX */ /* */ /* donne une 'imageR' strictement identique a 'imageA'. De plus : */ /* */ /* effectif=VRAI */ /* egaliser=FAUX */ /* substituer_histogrammme_avant=VRAI */ /* substituer_histogrammme_apres=FAUX */ /* */ /* donne dans 'imageR' une version de 'imageA' ou les niveaux codent l'histogramme des */ /* niveaux de 'imageA' ; ainsi le 'NOIR' montre les points possedant le niveau le moins */ /* utilise alors que le 'BLANC' montre les points possedant le niveau le plus utilise... */ GET_ARGUMENT_L("shuffle=""shuffler=""shuffling=",Iegalisation_d_histogrammme_plat_____shuffler); GET_ARGUMENT_I("graine=",Iegalisation_d_histogrammme_plat_____graine_du_shuffling); GET_ARGUMENT_F("forceX=""fX=""fx=",Iegalisation_d_histogrammme_plat_____force_le_long_de_OX_du_shuffling); GET_ARGUMENT_F("forceY=""fY=""fy=",Iegalisation_d_histogrammme_plat_____force_le_long_de_OY_du_shuffling); /* Les parametres de "shuffling" ont ete introduits le 20081008113435... */ ) ); CALi(gInettoyage(les_images_sont_standards,ImageR,IFmageR)); /* Initialisation de l'image Resultat. */ #include xci/substitue.04.I" /* Introduit le 20081008161133... */ Test(IFNE_chaine(nom_substitution,NOM_SUBSTITUTION)) Bblock CONVERSION_D_UNE_LISTE_DE_SUBSTITUTION_EN_UN_HISTOGRAMME(substitution_courante,histogramme_plat); /* La liste de substitution courante est transformee en histogramme (ce dispositif a ete */ /* introduit le 20081008161348) et activation... */ Eblock ATes Bblock Eblock ETes #include xci/substitue.06.I" /* Puis on desactive immediatement (introduit le 20081008161348...). */ Test(PAS_D_ERREUR(CODE_ERROR(gIload_image(les_images_sont_standards,ImageA,IFmageA,nom_imageA)))) Bblock CALS(gIegalisation_d_histogrammme(les_images_sont_standards,ImageR,IFmageR,ImageA,IFmageA)); /* Egalisation de l'histogramme... */ CALi(gIupdate_image(les_images_sont_standards,nom_imageR,ImageR,IFmageR)); Eblock ATes Bblock Eblock ETes RETU_Commande; Eblock ECommande