/*************************************************************************************************************************************/ /* */ /* C A L C U L D E L A D E N S I T E D ' U N E I M A G E N O N S T A N D A R D : */ /* */ /* */ /* Author of '$xci/densite_2D.11$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20001222135240). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #define DEMI_DIMENSION_X \ QUATRE #define DEMI_DIMENSION_Y \ QUATRE /* Demi-dimension de la boite de calcul de la densite. */ #define FACTEUR_DU_NIVEAU \ FU \ /* Facteur du niveau. */ #define FACTEUR_DE_LA_DISTANCE \ FU \ /* Facteur de la distance. */ #define EXPOSANT_DE_LA_DISTANCE \ FDEUX \ /* Exposant de la distance. */ #define RENORMALISER_LES_EXPONENTIELLES \ VRAI \ /* Faut-il renormaliser ('VRAI') ou pas ('FAUX') les exponentielles ? */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C A L C U L D E L A D E N S I T E D ' U N E I M A G E N O N S T A N D A R D : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE)); DEFV(Positive,INIT(demi_dimension_X,DEMI_DIMENSION_X)); DEFV(Positive,INIT(demi_dimension_Y,DEMI_DIMENSION_Y)); /* Demi-dimension de la boite de calcul de la densite. */ DEFV(Float,INIT(facteur_du_niveau,FACTEUR_DU_NIVEAU)); /* Facteur du niveau. */ DEFV(Float,INIT(facteur_de_la_distance,FACTEUR_DE_LA_DISTANCE)); /* Facteur de la distance. */ DEFV(Float,INIT(exposant_de_la_distance,EXPOSANT_DE_LA_DISTANCE)); /* Exposant de la distance. */ DEFV(Logical,INIT(renormaliser_les_exponentielles,RENORMALISER_LES_EXPONENTIELLES)); /* Faut-il renormaliser ('VRAI') ou pas ('FAUX') les exponentielles ? */ /*..............................................................................................................................*/ GET_ARGUMENTSi(nombre_d_arguments ,BLOC(GET_ARGUMENT_L("IFdensite_____compatibilite_20110908=""compatibilite_20110908=" ,IFdensite_____compatibilite_20110908 ); /* Argument introduit le 20110908081804... */ GET_ARGUMENT_L("IFdensite_____compatibilite_2014010308=""compatibilite_2014010308=" ,IFdensite_____compatibilite_2014010308 ); /* Argument introduit le 20140103085643... */ GET_ARGUMENT_L("IFdensite_____compatibilite_2014010310=""compatibilite_2014010310=" ,IFdensite_____compatibilite_2014010310 ); /* Argument introduit le 20140103104538... */ GET_ARGUMENT_C("imageA=""A=",nom_imageA); GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_L("version_simplifiee=""simplifiee=""vs=",IFdensite_____version_simplifiee); /* Arguments introduits le 20170730095841... */ GET_ARGUMENT_F("ponderation_RdisF2D=""distance1=""d1=",IFdensite_____ponderation_RdisF2D); GET_ARGUMENT_F("ponderation_ASdisF2D=""distance2=""d2=",IFdensite_____ponderation_ASdisF2D); /* Arguments introduits le 20170730110416... */ GET_ARGUMENT_L("periodiser_X=""periodX=",IFdensite_____periodiser_X); GET_ARGUMENT_L("periodiser_Y=""periodY=",IFdensite_____periodiser_Y); GET_ARGUMENT_L("symetriser_X=""symetrX=",IFdensite_____symetriser_X); GET_ARGUMENT_L("symetriser_Y=""symetrY=",IFdensite_____symetriser_Y); GET_ARGUMENT_L("prolonger_X=""prolX=",IFdensite_____prolonger_X); GET_ARGUMENT_L("prolonger_Y=""prolY=",IFdensite_____prolonger_Y); GET_ARGUMENT_F("niveau_hors_image=""niveau=",IFdensite_____niveau_hors_image); GET_ARGUMENT_I("dx=""dX=",demi_dimension_X); GET_ARGUMENT_I("dy=""dY=",demi_dimension_Y); /* Je note le 20120227093901 qu'utiliser : */ /* */ /* dX=0 */ /* dY=0 */ /* IFdensite_____compatibilite_20110908I */ /* */ /* rend l'operation neutre et renvoie 'IFmageR' identique a 'IFmageA'... */ GET_ARGUMENTS2_I("dxy=""dXY=",demi_dimension_X,demi_dimension_Y); /* Arguments introduits le 20170730094534... */ GET_ARGUMENT_F("facteurN=""fN=",facteur_du_niveau); GET_ARGUMENT_F("facteurD=""fD=",facteur_de_la_distance); GET_ARGUMENT_F("exposant=""e=",exposant_de_la_distance); GET_ARGUMENT_L("rn=""renormaliser=",renormaliser_les_exponentielles); ) ); CALi(IFinitialisation(IFmageR,FZERO)); /* Initialisation de l'image Resultat. */ Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(IFmageA,nom_imageA)))) Bblock CALS(IFdensite(IFmageR ,IFmageA ,demi_dimension_X ,demi_dimension_Y ,facteur_du_niveau ,facteur_de_la_distance ,exposant_de_la_distance ,renormaliser_les_exponentielles ) ); /* Calcul de la densite... */ CALi(IupdateF_image(nom_imageR,IFmageR)); Eblock ATes Bblock Test__CODE_ERREUR__ERREUR07; Eblock ETes RETU_Commande; Eblock ECommande