/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R P O L A T I O N   E N T R E   D E U X   I M A G E S   S U I V A N T   U N   P O N D E R A T E U R                */
/*        S U I V A N T   L E   V O I S I N N A G E   D E   C H A Q U E   P O I N T  :                                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Cette commande genere une image                                                                                */
/*                  dont le nom est le premier argument                                                                              */
/*                  d'appel ; elle est le resultat de                                                                                */
/*                  l'interpolation entre les deux images                                                                            */
/*                  Arguments suivant un Ponderateur et                                                                              */
/*                  son complement et en prenant en compte                                                                           */
/*                  les informations de voisinnage                                                                                   */
/*                  ('v $xiii/pent_image$FON 20120422090922'                                                                         */
/*                  pour le principe).                                                                                               */
/*                                                                                                                                   */
/*                    On notera bien que :                                                                                           */
/*                                                                                                                                   */
/*                                      interpolation(A1,A2) # interpolation(A2,A1)                                                  */
/*                                                                                                                                   */
/*                  ce qui signifie que cela ne "commute" pas                                                                        */
/*                  ('v $xiirc/MANE.Z3.2' pour illustrer cela                                                                        */
/*                  ou encore 'v $xiav/INTERPOLE_12.11$R16').                                                                        */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/interpole.12$K' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20101011154739).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

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

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   COMPATIBILITE_20120423                                                                                                        \
                    FAUX                                                                                                                \
                                        /* Permet d'assurer la compatibilite anterieure au 20120423110114 si besoin est et alors     */ \
                                        /* de ne pas initialiser le FOND...                                                          */

#define   INVERSER_LE_PONDERATEUR                                                                                                       \
                    FAUX                                                                                                                \
                                        /* Faut-il inverser le ponderateur ('VRAI') ou le conserver tel quel ('FAUX') ?              */

#define   NOMBRE_DE_POINTS                                                                                                              \
                    PARE(1024)                                                                                                          \
                                        /* Nombre de points maximal a traiter sur une spirale.                                       */

#define   FAIRE_DE_PLUS_L_INTERPOLATION_COMPLEMENTAIRE                                                                                  \
                    FAUX                                                                                                                \
                                        /* Faut-il en plus de l'interpolation "directe", faire l'interpolation "complementaire"      */ \
                                        /* ('VRAI') ?                                                                                */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   imageFOND                                                                                                                     \
                    ImageA5
#define   FimageFOND                                                                                                                    \
                    IFmageA5
                                        /* Definition du Fond (introduit le 20120423103706).                                         */

#define   imageA1                                                                                                                       \
                    ImageA1
#define   FimageA1                                                                                                                      \
                    IFmageA1
#define   imageA2                                                                                                                       \
                    ImageA3
#define   FimageA2                                                                                                                      \
                    IFmageA3
                                        /* Definition des deux images Argument a interpoler.                                         */

#define   ponderD                                                                                                                       \
                    ImageA2
#define   FponderD                                                                                                                      \
                    IFmageA2
#define   ponderC                                                                                                                       \
                    ImageA4
#define   FponderC                                                                                                                      \
                    IFmageA4
                                        /* Definition du ponderateur Direct et de son Complement.                                    */

#define   imageR                                                                                                                        \
                    ImageR
#define   FimageR                                                                                                                       \
                    IFmageR
                                        /* Definition de l'image Resultat.                                                           */

#define   INVERSION_EVENTUELLE_DU_PONDERATEUR(ponderateur1,ponderateur2)                                                                \
                    COND(IL_NE_FAUT_PAS(inverser_le_ponderateur),ponderateur1,ponderateur2)                                             \
                                        /* Inversion eventuelle du ponderateur introduite le 20081021090238...                       */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R P O L A T I O N   E N T R E   D E U X   I M A G E S   S U I V A N T   U N   P O N D E R A T E U R                */
/*        S U I V A N T   L E   V O I S I N N A G E   D E   C H A Q U E   P O I N T  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageA1),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageA2),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageP),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageFOND),NOM_PIPE));
                                        /* Le Fond ('nom_imageFOND') a ete introduit le 20120422075927...                            */

     DEFV(Logical,INIT(compatibilite_20120423,COMPATIBILITE_20120423));
                                        /* Permet d'assurer la compatibilite anterieure au 20120423110114 si besoin est et alors     */
                                        /* de ne pas initialiser le FOND...                                                          */

     DEFV(Logical,INIT(inverser_le_ponderateur,INVERSER_LE_PONDERATEUR));
                                        /* Faut-il inverser le ponderateur ('VRAI') ou le conserver tel quel ('FAUX') ?              */

     DEFV(Positive,INIT(nombre_de_points,NOMBRE_DE_POINTS));
                                        /* Nombre maximal de points a traiter sur une spirale.                                       */

     DEFV(Logical,INIT(faire_de_plus_l_interpolation_complementaire,FAIRE_DE_PLUS_L_INTERPOLATION_COMPLEMENTAIRE));
                                        /* Faut-il en plus de l'interpolation "directe", faire l'interpolation "complementaire"      */
                                        /* ('VRAI') ?                                                                                */
     /*..............................................................................................................................*/
     BSaveModifyVariable(Float,Fcombinaison_universelle_valeurs_____ponderation_de_ADD2,FZERO);
     BSaveModifyVariable(Float,Fcombinaison_universelle_valeurs_____ponderation_de_MAX2,FU);
                                        /* Introduit le 20101111110630 afin de fixer par defaut les valeurs les plus utiles...       */

     GET_ARGUMENTSv(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_L("Iassociation_de_voisinage_____compatibilite_20101012=""compatibilite_20101012="
                                       ,Iassociation_de_voisinage_____compatibilite_20101012
                                        );
                                        /* Argument complete le 20120911135007...                                                    */
                         GET_ARGUMENT_L("Iassociation_de_voisinage_____compatibilite_20120421=""compatibilite_20120421="
                                       ,Iassociation_de_voisinage_____compatibilite_20120421
                                        );
                                        /* Argument introduit le 20120421082828 et complete le 20120911135007...                     */
                         GET_ARGUMENT_L("compatibilite_20120423=",compatibilite_20120423);
                                        /* Argument introduit le 20120423110114...                                                   */

                         GET_ARGUMENT_C("imageA1=""A1=",nom_imageA1);
                         GET_ARGUMENT_C("imageA2=""A2=",nom_imageA2);
                         GET_ARGUMENT_C("imageP=""P=",nom_imageP);
                         GET_ARGUMENT_C("imageR=""R=",nom_imageR);
                         GET_ARGUMENT_C("imageF=""F=""FOND=",nom_imageFOND);
                                        /* Argument introduit le 20120422075927...                                                   */
                         GET_ARGUMENT_L("standard=",les_images_sont_standards);

                         GET_ARGUMENT_L("message_attention_extrema=""mae="
                                       ,Ifloat_std_____editer_le_message_d_attention_relatif_aux_extrema
                                        );
                                        /* Arguments introduits le 20101109160703 pour 'v $xiirf/.FRA3.S2.2.$U erreur_extrema'...    */

                         GET_ARGUMENT_L("valider_compatibilite_images=""valider=""val="
                                       ,Iassociation_de_voisinage_____valider_la_compatibilite_des_images
                                        );
                                        /* Arguments introduits le 20101013103410...                                                 */

                         GET_ARGUMENT_L("inverser_ponderateur=""inverser=""inv=",inverser_le_ponderateur);

                         GET_ARGUMENT_L("accelerer_association=""accelerer=""acc="
                                       ,Iassociation_de_voisinage_____accelerer_l_association
                                        );
                                        /* Arguments introduits le 20120424165330...                                                 */
                         GET_ARGUMENT_I("pas_accelerateur=""paccelerateur=""pacc="
                                       ,Iassociation_de_voisinage_____pas_de_parcours_de_l_accelerateur
                                        );
                                        /* Arguments introduits le 20120427094010...                                                 */

                         GET_ARGUMENT_I("points=""n=",nombre_de_points);

                         GET_ARGUMENT_L("arret_premier_point_hors_image=""arret_hors_image=""ahi="
                                       ,Iassociation_de_voisinage_____s_arreter_sur_le_premier_point_hors_image
                                        );
                         GET_ARGUMENT_N("explorer_hors_image=""hors_image=""ehi="
                                       ,Iassociation_de_voisinage_____s_arreter_sur_le_premier_point_hors_image
                                        );
                                        /* Arguments introduits le 20101012230740...                                                 */

                         GET_ARGUMENT_I("seuil_discrimination_niveaux=""seuil="
                                       ,Iassociation_de_voisinage_____seuil_de_discrimination_des_niveaux
                                        );
                                        /* Argument introduit le 20101013103410...                                                   */

                         GET_ARGUMENT_L("complement_a_1=""forcer_extrema=",IFcomplementation_____forcer_les_extrema);
                         GET_ARGUMENT_F("minimum=""min=",IFcomplementation_____niveau_minimum);
                         GET_ARGUMENT_F("maximum=""max=",IFcomplementation_____niveau_maximum);
                                        /* La modification du 20101012170137 semble rendre ces arguments inutiles, mais je les       */
                                        /* conserve malgre tout...                                                                   */

                         GET_ARGUMENT_L("interpolation_complementaire=""complementaire=""deux_interpolations=""deux="
                                       ,faire_de_plus_l_interpolation_complementaire
                                        );
                         GET_ARGUMENT_N("interpolation_seule=""une_interpolation=""une="
                                       ,faire_de_plus_l_interpolation_complementaire
                                        );
                                        /* Arguments introduits le 20101111094954...                                                 */
                         GET_ARGUMENT_F("pADD2="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_ADD2
                                        );
                         GET_ARGUMENT_F("pSOUS="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_SOUS
                                        );
                         GET_ARGUMENT_F("pMUL2="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MUL2
                                        );
                         GET_ARGUMENT_F("pDIVZ="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_DIVZ
                                        );
                         GET_ARGUMENT_F("pMIN2="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MIN2
                                        );
                         GET_ARGUMENT_F("pMAX2="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MAX2
                                        );
                         GET_ARGUMENT_F("pMINMAX="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MINMAX
                                        );
                         GET_ARGUMENT_F("pMAXMIN="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MAXMIN
                                        );
                         GET_ARGUMENT_F("pMOYE="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MOYE
                                        );
                         GET_ARGUMENT_F("pMOYZ="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MOYZ
                                        );
                         GET_ARGUMENT_F("pMOYZSI="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MOYZSI
                                        );
                         GET_ARGUMENT_F("pMOYQ="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MOYQ
                                        );
                         GET_ARGUMENT_F("pMOYQSI="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MOYQSI
                                        );
                         GET_ARGUMENT_F("pMOYH="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MOYH
                                        );
                         GET_ARGUMENT_F("pSPUIX="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_SPUIX
                                        );
                         GET_ARGUMENT_F("pATAN="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_ATAN
                                        );
                         GET_ARGUMENT_F("pMULH24="
                                       ,Fcombinaison_universelle_valeurs_____ponderation_de_MULH24
                                        );
                                        /* Arguments introduits le 20101111094954... Il furent completes le 20180823102111 avec      */
                                        /* les ponderations de 'MOYH(...)', 'SE12(...)' et 'SE22(...)', puis le 20181009171833       */
                                        /* avec 'ATAN(...)', puis le 20181203163210 avec 'MULH24(...)'...                            */
                         )
                    );
                                        /* Le passage de 'GET_ARGUMENTSi(...)' a 'GET_ARGUMENTSv(...)' a eu lieu le 20101011165628   */
                                        /* a cause de 'v $xig/fonct$vv$DEF 20101011165744'. On notera que cela n'est pas utile dans  */
                                        /* la commande 'v $xci/craque$K GET_ARGUMENTSi' tout simplement parce que les deux images    */
                                        /* 'Iassociation_de_voisinage_____X' et 'Iassociation_de_voisinage_____Y' y sont referencees */
                                        /* explicitement (au passage 'v $xci/interpole.12$K' est inspire de 'v $xci/craque$K'...).   */

     CALi(gIload_image_si_present(les_images_sont_standards
                                 ,imageFOND,FimageFOND
                                 ,nom_imageFOND
                                 ,NOM_PIPE
                                 ,Iinitialisation_____valeur_pour_gInettoyage,IFinitialisation_____valeur_pour_gInettoyage
                                  )
          );
                                        /* Initialisation de l'image Resultat. Le 20120422080407 :                                   */
                                        /*                                                                                           */
                                        /*                  CALi(gInettoyage(les_images_sont_standards,imageR,FimageR));             */
                                        /*                                                                                           */
                                        /* a ete remplace par 'gIload_image_si_present(...)' afin de pouvoir reperer facilement      */
                                        /* (a l'aide d'un "Fond") les points qui ne sont pas atteints. En particulier en utilisant   */
                                        /* deux Fonds differents, puis en faisant une difference entre les deux images Resultat,     */
                                        /* ils apparaitront nettement...                                                             */

     Test(PAS_D_ERREUR(CODE_ERROR(gIload_image(les_images_sont_standards,imageA1,FimageA1,nom_imageA1))))
          Bblock
                                        /* Chargement de la premiere image Argument.                                                 */
          Test(PAS_D_ERREUR(CODE_ERROR(gIload_image(les_images_sont_standards,imageA2,FimageA2,nom_imageA2))))
               Bblock
                                        /* Chargement de la deuxieme image Argument.                                                 */
               Test(PAS_D_ERREUR(CODE_ERROR(gIload_image(les_images_sont_standards,ponderD,FponderD,nom_imageP))))
                    Bblock
                                        /* Chargement de l'image de definition de la Ponderation, ou                                 */
                                        /* premier ponderateur,                                                                      */
                    BSaveModifyVariable(Logical,IFcomplementation_____forcer_les_extrema,VRAI);
                                        /* Introduit le 20101012170137 afin d'etre sur d'avoir le complement a 1...                  */

                    Test(EST_VRAI(les_images_sont_standards))
                         Bblock
                                        /* Cas d'une image 'image' :                                                                 */
                         BDEFV(imageF,imageFOND_non_standard);
                         BDEFV(imageF,imageA1_non_standard);
                         BDEFV(imageF,ponderD_non_standard);
                         BDEFV(imageF,imageA2_non_standard);
                         BDEFV(imageF,ponderC_non_standard);
                         BDEFV(imageF,imageR_non_standard);

                         CALS(Istd_float_avec_normalisation(imageFOND_non_standard,imageFOND));
                         CALS(Istd_float_avec_normalisation(imageA1_non_standard,imageA1));
                         CALS(Istd_float_avec_normalisation(ponderD_non_standard,ponderD));
                         CALS(Istd_float_avec_normalisation(imageA2_non_standard,imageA2));

                         CALS(IFcomplementation(ponderC_non_standard,ponderD_non_standard));
                                        /* Puis generation du second ponderateur (complementaire du premier).                        */

                         CALS(Iassociation_de_voisinage(imageA1,imageA2,nombre_de_points));
                                        /* Calcul de {Iassociation_de_voisinage_____X,Iassociation_de_voisinage_____Y}               */
                                        /* par la methode d'association de voisinage...                                              */

                         Test(IL_NE_FAUT_PAS(compatibilite_20120423))
                                        /* Test intrododuit le 20120423110114...                                                     */
                              Bblock
                              CALS(IFmove(imageR_non_standard,imageFOND_non_standard));
                                        /* Initialisation introduite le 20120423103706...                                            */
                              Eblock
                         ATes
                              Bblock
                              Eblock
                         ETes

                         CALS(IFinterpolation_locale_de_voisinage(imageR_non_standard
                                                                 ,INVERSION_EVENTUELLE_DU_PONDERATEUR(ponderD_non_standard
                                                                                                     ,ponderC_non_standard
                                                                                                      )
                                                                 ,imageA1_non_standard
                                                                 ,INVERSION_EVENTUELLE_DU_PONDERATEUR(ponderC_non_standard
                                                                                                     ,ponderD_non_standard
                                                                                                      )
                                                                 ,imageA2_non_standard
                                                                  )
                              );
                                        /* Et interpolation a l'aide des deux ponderateurs 'ponderD' et 'ponderC'                    */
                                        /* entre les deux images arguments 'imageA1' et 'imageA2'.                                   */

                         Test(IL_FAUT(faire_de_plus_l_interpolation_complementaire))
                              Bblock
                              BDEFV(imageF,imageR_non_standard_complementaire);

                              CALS(Iassociation_de_voisinage(imageA2,imageA1,nombre_de_points));
                                        /* Calcul de {Iassociation_de_voisinage_____X,Iassociation_de_voisinage_____Y}               */
                                        /* par la methode d'association de voisinage...                                              */

                              Test(IL_NE_FAUT_PAS(compatibilite_20120423))
                                        /* Test intrododuit le 20120423110114...                                                     */
                                   Bblock
                                   CALS(IFmove(imageR_non_standard_complementaire,imageFOND_non_standard));
                                        /* Initialisation introduite le 20120423103706...                                            */
                                   Eblock
                              ATes
                                   Bblock
                                   Eblock
                              ETes

                              CALS(IFinterpolation_locale_de_voisinage(imageR_non_standard_complementaire
                                                                      ,INVERSION_EVENTUELLE_DU_PONDERATEUR(ponderC_non_standard
                                                                                                          ,ponderD_non_standard
                                                                                                           )
                                                                      ,imageA2_non_standard
                                                                      ,INVERSION_EVENTUELLE_DU_PONDERATEUR(ponderD_non_standard
                                                                                                          ,ponderC_non_standard
                                                                                                           )
                                                                      ,imageA1_non_standard
                                                                       )
                                   );
                                        /* Et interpolation "complementaire" (introduite le 20101111094954...).                      */

                              CALS(IFcombinaison_universelle(imageR_non_standard
                                                            ,imageR_non_standard
                                                            ,imageR_non_standard_complementaire
                                                             )
                                   );
                                        /* Et enfin, combinaison des deux interpolations...                                          */

                              EDEFV(imageF,imageR_non_standard_complementaire);
                              Eblock
                         ATes
                              Bblock
                              Eblock
                         ETes

                         CALS(Ifloat_std_avec_renormalisation(imageR,imageR_non_standard));

                         EDEFV(imageF,imageR_non_standard);
                         EDEFV(imageF,ponderC_non_standard);
                         EDEFV(imageF,imageA2_non_standard);
                         EDEFV(imageF,ponderD_non_standard);
                         EDEFV(imageF,imageA1_non_standard);
                         EDEFV(imageF,imageFOND_non_standard);
                         Eblock
                    ATes
                         Bblock
                                        /* Cas d'une image 'imageF' :                                                                */
                         BDEFV(image,FimageA1_standard);
                         BDEFV(image,FimageA2_standard);

                         CALS(Ifloat_std_avec_renormalisation(FimageA1_standard,FimageA1));
                         CALS(Ifloat_std_avec_renormalisation(FimageA2_standard,FimageA2));

                         CALS(IFcomplementation(FponderC,FponderD));
                                        /* Puis generation du second ponderateur (complementaire du premier).                        */

                         CALS(Iassociation_de_voisinage(FimageA1_standard,FimageA2_standard,nombre_de_points));
                                        /* Calcul de {Iassociation_de_voisinage_____X,Iassociation_de_voisinage_____Y}               */
                                        /* par la methode d'association de voisinage...                                              */

                         Test(IL_NE_FAUT_PAS(compatibilite_20120423))
                                        /* Test intrododuit le 20120423110114...                                                     */
                              Bblock
                              CALS(IFmove(FimageR,FimageFOND));
                                        /* Initialisation introduite le 20120423103706...                                            */
                              Eblock
                         ATes
                              Bblock
                              Eblock
                         ETes

                         CALS(IFinterpolation_locale_de_voisinage(FimageR
                                                                 ,INVERSION_EVENTUELLE_DU_PONDERATEUR(FponderD,FponderC)
                                                                 ,FimageA1
                                                                 ,INVERSION_EVENTUELLE_DU_PONDERATEUR(FponderC,FponderD)
                                                                 ,FimageA2
                                                                  )
                              );
                                        /* Et interpolation a l'aide des deux ponderateurs 'FponderD' et 'FponderC'                  */
                                        /* entre les deux images arguments 'FimageA1' et 'FimageA2'.                                 */

                         Test(IL_FAUT(faire_de_plus_l_interpolation_complementaire))
                              Bblock
                              BDEFV(imageF,FimageR_complementaire);

                              CALS(Iassociation_de_voisinage(FimageA2_standard,FimageA1_standard,nombre_de_points));
                                        /* Calcul de {Iassociation_de_voisinage_____X,Iassociation_de_voisinage_____Y}               */
                                        /* par la methode d'association de voisinage...                                              */

                              Test(IL_NE_FAUT_PAS(compatibilite_20120423))
                                        /* Test intrododuit le 20120423110114...                                                     */
                                   Bblock
                                   CALS(IFmove(FimageR_complementaire,FimageFOND));
                                        /* Initialisation introduite le 20120423103706...                                            */
                                   Eblock
                              ATes
                                   Bblock
                                   Eblock
                              ETes

                              CALS(IFinterpolation_locale_de_voisinage(FimageR_complementaire
                                                                      ,INVERSION_EVENTUELLE_DU_PONDERATEUR(FponderC,FponderD)
                                                                      ,FimageA2
                                                                      ,INVERSION_EVENTUELLE_DU_PONDERATEUR(FponderD,FponderC)
                                                                      ,FimageA1
                                                                       )
                                   );
                                        /* Et interpolation "complementaire" (introduite le 20101111094954...).                      */

                              CALS(IFcombinaison_universelle(FimageR
                                                            ,FimageR
                                                            ,FimageR_complementaire
                                                             )
                                   );
                                        /* Et enfin, combinaison des deux interpolations...                                          */

                              EDEFV(imageF,FimageR_complementaire);
                              Eblock
                         ATes
                              Bblock
                              Eblock
                         ETes

                         EDEFV(image,FimageA2_standard);
                         EDEFV(image,FimageA1_standard);
                         Eblock
                    ETes

                    ESaveModifyVariable(Logical,IFcomplementation_____forcer_les_extrema);

                    CALi(gIupdate_image(les_images_sont_standards,nom_imageR,imageR,FimageR));
                    Eblock
               ATes
                    Bblock
                    Test__CODE_ERREUR__ERREUR07;
                    Eblock
               ETes
               Eblock
          ATes
               Bblock
               Test__CODE_ERREUR__ERREUR07;
               Eblock
          ETes
          Eblock
     ATes
          Bblock
          Test__CODE_ERREUR__ERREUR07;
          Eblock
     ETes

     ESaveModifyVariable(Float,Fcombinaison_universelle_valeurs_____ponderation_de_MAX2);
     ESaveModifyVariable(Float,Fcombinaison_universelle_valeurs_____ponderation_de_ADD2);
                                        /* Introduit le 20101111110630...                                                            */

     RETU_Commande;
     Eblock
ECommande



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.