/*************************************************************************************************************************************/
/* */
/* P A S S A G E D E S F A U S S E S A U X V R A I E S C O U L E U R S A L E A T O I R E S : */
/* */
/* */
/* Definition : */
/* */
/* Cette commande calcule les trois */
/* composantes en vraies couleurs aleatoires */
/* de l'image Argument. */
/* */
/* */
/* Author of '$xci/vraies_C_aleatoires$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20210520110857). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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_QUAD_IMAGE_EXT
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
#define UTILISER_LA_METHODE_NON_DETERMINISTE \
FAUX \
/* Faut-il utiliser la methode non deterministe ('VRAI)' ou deterministe ('FAUX') ? Ceci */ \
/* fut introduit le 20210521103643... */ \
/* */ \
/* La methode deterministe a ete activee par defaut le 20210523085838 (en passant de 'FAUX' */ \
/* a 'VRAI') grace a 'v $xiii/quad_image$FON _____selectionner_aleatoirement_les_index.VRAI' */ \
/* qui marche parfaitement... */
#define GENERER_UNE_IMAGE_EN_VRAIES_COULEURS \
FAUX \
/* Faut-il generer une image en vraies couleurs ('VRAI)' c'est-a-dire dont les trois */ \
/* composantes ont la meme racine, ou bien trois images "independantes" ('FAUX'). */
#define GENERER_LA_COMPOSANTE_ROUGE \
VRAI
#define GENERER_LA_COMPOSANTE_VERTE \
VRAI
#define GENERER_LA_COMPOSANTE_BLEUE \
VRAI
#define GENERER_LA_LUMINANCE \
FAUX
/* Indicateurs precisant s'il faut generer ('VRAI') ou pas ('FAUX') la composante */
/* chromatique correspondante. */
#define UTILISER_LE_POINT_COURANT_COMME_BORNE_SUPERIEURE \
FAUX \
/* Faut-il utiliser le point courant pour les trois bornes superieures ('VRAI') ou bien */ \
/* prendre des valeurs par defaut ('FAUX') ? Ceci fut introduit le 20210520145214... */
#define NOMBRE_MAXIMAL_D_ITERATIONS \
CENT \
/* Nombre maximal d'iterations de recherche d'une solution... */
#define GRAINE_ROUGE \
PARE(1789)
#define GRAINE_VERTE \
PARE(1947)
#define GRAINE_BLEUE \
PARE(2001)
/* Graines de generation aleatoire... */
#define FACTEUR_ROUGE \
FRA10(FRA2(FU))
#define FACTEUR_VERTE \
FRA10(FRA2(FU))
#define FACTEUR_BLEUE \
FRA10(FRA2(FU))
/* Afin de calculer les bornes inferieure et superieure de generation aleatoire... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#include xci/vraies_C.01.I"
#include xci/luminance.01.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A S S A G E D E S F A U S S E S A U X V R A I E S C O U L E U R S A L E A T O I R E S : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE));
/* Nom de l'image a displayer. */
DEFV(CHAR,INIC(POINTERc(nom_imagesR),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
/* Nom de la racine d'une image en vraies couleurs. */
DEFV(CHAR,INIC(POINTERc(nom_imageRR),NOM_PIPE));
/* Nom de l'image ROUGE a generer, */
DEFV(CHAR,INIC(POINTERc(nom_imageRV),NOM_PIPE));
/* Nom de l'image VERTE a generer, */
DEFV(CHAR,INIC(POINTERc(nom_imageRB),NOM_PIPE));
/* Nom de l'image BLEUE a generer, */
DEFV(CHAR,INIC(POINTERc(nom_imageRL),NOM_PIPE));
/* Nom de l'image LUMINANCE a generer. */
DEFV(Logical,INIT(utiliser_la_methode_non_deterministe,UTILISER_LA_METHODE_NON_DETERMINISTE));
/* Faut-il utiliser la methode non deterministe ('VRAI)' ou deterministe ('FAUX') ? Ceci */
/* fut introduit le 20210521103643... */
/* */
/* La methode deterministe a ete activee par defaut le 20210523085838 (en passant de 'FAUX' */
/* a 'VRAI') grace a 'v $xiii/quad_image$FON _____selectionner_aleatoirement_les_index.VRAI' */
/* qui marche parfaitement... */
DEFV(Logical,INIT(generer_une_image_en_vraies_couleurs,GENERER_UNE_IMAGE_EN_VRAIES_COULEURS));
/* Faut-il generer une image en vraies couleurs ('VRAI)' c'est-a-dire dont les trois */
/* composantes ont la meme racine, ou bien trois images "independantes" ('FAUX'). La */
/* valeur par defaut est choisie pour assurer la compatibilite anterieure... */
DEFV(Logical,INIT(generer_la_composante_ROUGE,GENERER_LA_COMPOSANTE_ROUGE));
DEFV(Logical,INIT(generer_la_composante_VERTE,GENERER_LA_COMPOSANTE_VERTE));
DEFV(Logical,INIT(generer_la_composante_BLEUE,GENERER_LA_COMPOSANTE_BLEUE));
DEFV(Logical,INIT(generer_la_luminance,GENERER_LA_LUMINANCE));
/* Indicateurs precisant s'il faut genere ('VRAI') ou pas ('FAUX') la composante */
/* chromatique correspondante. */
DEFV(Logical,INIT(utiliser_le_point_courant_comme_borne_superieure,UTILISER_LE_POINT_COURANT_COMME_BORNE_SUPERIEURE));
/* Faut-il utiliser le point courant pour les trois bornes superieures ('VRAI') ou bien */
/* prendre des valeurs par defaut ('FAUX') ? Ceci fut introduit le 20210520145214... */
DEFV(Positive,INIT(nombre_maximal_d_iterations,NOMBRE_MAXIMAL_D_ITERATIONS));
/* Nombre maximal d'iterations de recherche d'une solution... */
DEFV(Int,INIT(graine_ROUGE,GRAINE_ROUGE));
DEFV(Int,INIT(graine_VERTE,GRAINE_VERTE));
DEFV(Int,INIT(graine_BLEUE,GRAINE_BLEUE));
/* Graines de generation aleatoire... */
DEFV(Float,INIT(facteur_ROUGE,FACTEUR_ROUGE));
DEFV(Float,INIT(facteur_VERTE,FACTEUR_VERTE));
DEFV(Float,INIT(facteur_BLEUE,FACTEUR_BLEUE));
/* Afin de calculer les bornes inferieure et superieure de generation aleatoire... */
/*..............................................................................................................................*/
GET_ARGUMENTSi(nombre_d_arguments
,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA);
GET_ARGUMENT_C("imageR=""R=",nom_imageR);
GET_ARGUMENT_C("Rouge=""RR=""ROUGE=",nom_imageRR);
GET_ARGUMENT_C("Verte=""VERTE=""RV=",nom_imageRV);
GET_ARGUMENT_C("RB=""Bleue=""BLEUE=",nom_imageRB);
GET_ARGUMENT_C("RL=""Luminance=""LUMINANCE=",nom_imageRL);
GET_ARGUMENT_L("RVB=",generer_une_image_en_vraies_couleurs);
GET_ARGUMENT_L("genereR=""gROUGE=",generer_la_composante_ROUGE);
GET_ARGUMENT_L("genereV=""gVERTE=",generer_la_composante_VERTE);
GET_ARGUMENT_L("genereB=""gBLEUE=",generer_la_composante_BLEUE);
GET_ARGUMENT_L("genereL=""gLUMINANCE=",generer_la_luminance);
GET_ARGUMENT_L("non_deterministe=""aleatoire=""nd=",utiliser_la_methode_non_deterministe);
GET_ARGUMENT_N("deterministe=""d=",utiliser_la_methode_non_deterministe);
/* Arguments introduits le 20210521103643... */
GET_ARGUMENT_I("nombre_repetitions=""repetitions=""nr="
,Ivraies_couleurs_non_aleatoires_____nombre_de_repetitions
);
/* Arguments introduits le 20210522080354... */
GET_ARGUMENT_L("selection_aleatoire_index=""sax="
,Ivraies_couleurs_non_aleatoires_____selectionner_aleatoirement_les_index
);
GET_ARGUMENT_I("graine=""g=",Ivraies_couleurs_non_aleatoires_____graine_de_selection_aleatoire_des_index);
/* Arguments introduits le 20210523082516... */
GET_ARGUMENT_L("point_courant_borne_superieure=""pcbs=",utiliser_le_point_courant_comme_borne_superieure);
/* Argument introduit le 20210520145214... */
GET_ARGUMENT_I("iterations=",nombre_maximal_d_iterations);
GET_ARGUMENT_I("graine_ROUGE=""gR=",graine_ROUGE);
GET_ARGUMENT_I("graine_VERTE=""gV=",graine_VERTE);
GET_ARGUMENT_I("graine_BLEUE=""gB=",graine_BLEUE);
GET_ARGUMENT_F("facteur_ROUGE=""fR=",facteur_ROUGE);
GET_ARGUMENT_F("facteur_VERTE=""fV=",facteur_VERTE);
GET_ARGUMENT_F("facteur_BLEUE=""fB=",facteur_BLEUE);
)
);
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageA,nom_imageA))))
Bblock
Test(IL_FAUT(utiliser_la_methode_non_deterministe))
/* Test introduit le 20210521103643... */
Bblock
CALS(Ivraies_couleurs_aleatoires(Image_ROUGE,Image_VERTE,Image_BLEUE
,ImageA
,utiliser_le_point_courant_comme_borne_superieure
,nombre_maximal_d_iterations
,graine_ROUGE,graine_VERTE,graine_BLEUE
,facteur_ROUGE,facteur_VERTE,facteur_BLEUE
)
);
Eblock
ATes
Bblock
CALS(Ivraies_couleurs_non_aleatoires(Image_ROUGE,Image_VERTE,Image_BLEUE
,ImageA
)
);
Eblock
ETes
Test(IL_FAUT(generer_la_luminance))
Bblock
CALS(Iluminance(ImageR,Image_ROUGE,Image_VERTE,Image_BLEUE));
CALi(Iupdate_image(nom_imageRL,ImageR));
Eblock
ATes
Bblock
GENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES_RVB(nom_imageR,nom_imageRR,nom_imageRV,nom_imageRB)
Test(IL_FAUT(generer_la_composante_ROUGE))
Bblock
GENERATION_D_UNE_COMPOSANTE(nom_imageRR,c_ROUGE,Image_ROUGE);
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(generer_la_composante_VERTE))
Bblock
GENERATION_D_UNE_COMPOSANTE(nom_imageRV,c_VERTE,Image_VERTE);
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(generer_la_composante_BLEUE))
Bblock
GENERATION_D_UNE_COMPOSANTE(nom_imageRB,c_BLEUE,Image_BLEUE);
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ETes
Eblock
ATes
Bblock
Test__CODE_ERREUR__ERREUR07;
Eblock
ETes
RETU_Commande;
Eblock
ECommande
Copyright © Jean-François COLONNA, 2021-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2021-2024.