/*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D U M O D I F I C A T E U R D E C H A M P : */ /* */ /* */ /* Author of '$xci/modifi_ch.04$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 20050826154118). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* G E N E R A T I O N D U C H A M P : */ /* */ /*************************************************************************************************************************************/ #define MODIFICATION_DU_CHAMP_DEMANDE(Fmodificateur,nom_de_l_imageR,nom_de_l_imageA,BorneInf,BorneSup,Zf,SequenceConversion) \ Bblock \ CALi(gInettoyage(les_images_sont_standards,ImageR,IFmageR)); \ /* Initialisation de l'image Resultat. */ \ \ Test(PAS_D_ERREUR(CODE_ERROR(gIload_image(les_images_sont_standards,ImageA,IFmageA,nom_de_l_imageA)))) \ Bblock \ Test(EST_VRAI(les_images_sont_standards)) \ Bblock \ /* Cas d'une image 'image' : */ \ BDEFV(imageF,ImageA_renormalisee); \ /* Image Argument renormalisee... */ \ BDEFV(imageF,ImageA_modifiee); \ /* Image Resultat dans un intervalle a priori inconnu d'ou la renormalisation a priori... */ \ \ CALS(Istd_float(ImageA_renormalisee,BorneInf,BorneSup,ImageA)); \ /* Mise de l'image Argument dans [a,b]. */ \ CALS(IFmodification_champ(ImageA_modifiee \ ,amplificateur_de_la_fonction \ ,aFONCTION(Fmodificateur) \ ,translateur_de_la_fonction \ ,ADRESSE(translation) \ ,ADRESSE(echelle) \ ,ImageA_renormalisee \ ) \ ); \ /* Application de la modification demandee... */ \ BLOC(SequenceConversion); \ /* Et conversion inverse... */ \ \ EDEFV(imageF,ImageA_modifiee); \ /* Image Resultat dans un intervalle a priori inconnu d'ou la renormalisation a priori... */ \ EDEFV(imageF,ImageA_renormalisee); \ /* Image Argument renormalisee... */ \ Eblock \ ATes \ Bblock \ /* Cas d'une image 'imageF' : */ \ CALS(IFmodification_champ(IFmageR \ ,amplificateur_de_la_fonction \ ,aFONCTION(Fmodificateur) \ ,translateur_de_la_fonction \ ,ADRESSE(translation) \ ,ADRESSE(echelle) \ ,IFmageA \ ) \ ); \ /* Application de la modification demandee... */ \ Eblock \ ETes \ \ CALi(gIupdate_image(les_images_sont_standards,nom_de_l_imageR,ImageR,IFmageR)); \ Eblock \ ATes \ Bblock \ Test__CODE_ERREUR__ERREUR07; \ Eblock \ ETes \ Eblock \ /* Modification du champ demande par la fonction 'Fmodificateur(...)' suivant ; */ \ /* */ \ /* NIVEAU(X,Y) = Amplificateur*Fonction[(Ex.Xf + Tx),(Ey.Yf + Ty)] + Translateur */ \ /* */ \ /* ou {X,Y} designent les coordonnees du point courant et {Xf,Yf} ces memes coordonnees */ \ /* normalisees, avec : */ \ /* */ \ /* {Ex,Ey} = echelle */ \ /* {Tx,Ty} = translation */ \ /* */ \ /* et 'Amplificateur' et 'Translateur' designent 'amplificateur_de_la_fonction' */ \ /* et 'translateur_de_la_fonction' respectivement... */