/*************************************************************************************************************************************/
/* */
/* 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