/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O M P T A G E   D E S   E L E M E N T S   D E S   L I G N E S / C O L O N N E S   D ' U N E   I M A G E  :               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrv/ComptageLignesColonnes.01$K' :                                                                             */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20180602074244).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

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

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        V A L E U R S   I M P L I C I T E S   D E S   P A R A M E T R E S  :                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   COMPTER_LES_ELEMENTS_DES_LIGNES                                                                                               \
                    VRAI                                                                                                                \
                                        /* Indique si l'on compte sur les lignes ('VRAI') ou sur les colonnes ('FAUX').              */

#define   TESTS_STRICTS_A_GAUCHE                                                                                                        \
                    FAUX
#define   TESTS_STRICTS_A_DROITE                                                                                                        \
                    FAUX
                                        /* Est-on dans un ouvert ('VRAI') ou un ferme ('FAUX') ?                                     */

#define   SEUIL_INFERIEUR                                                                                                               \
                    SUCC(NOIR)
#define   SEUIL_SUPERIEUR                                                                                                               \
                    NEUT(BLANC)
                                        /* Definition du filtre passe-bande (en mode "standard").                                    */

#define   F_SEUIL_INFERIEUR                                                                                                             \
                    FZERO
#define   F_SEUIL_SUPERIEUR                                                                                                             \
                    FU
                                        /* Definition du filtre passe-bande (en mode "non standard").                                */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   F I C H I E R S  :                                                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrv/ARITHMET.1d.I"
#include  xrv/ARITHMET.21.I"
#include  xrv/champs_5.41.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P R O C E D U R E   D ' E D I T I O N  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   EDITER_LE_RESULTAT_DU_TRI                                                                                                     \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(editer_le_resultat_du_tri,EDITER_LE_RESULTAT_DU_TRI)));
                                        /* Afin de permettre d'editer le travail du tri...                                           */

#define   COMPTAGE(compteur)                                                                                                            \
                    Bblock                                                                                                              \
                    Test(EST_VRAI(les_images_sont_standards))                                                                           \
                         Bblock                                                                                                         \
                         INCR(compteur                                                                                                  \
                             ,COND(IFINcc(load_point(ImageA,X,Y)                                                                        \
                                         ,seuil_inferieur                                                                               \
                                         ,seuil_superieur                                                                               \
                                         ,tests_stricts_a_gauche                                                                        \
                                         ,tests_stricts_a_droite                                                                        \
                                          )                                                                                             \
                                  ,I                                                                                                    \
                                  ,ZERO                                                                                                 \
                                   )                                                                                                    \
                              );                                                                                                        \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         INCR(compteur                                                                                                  \
                             ,COND(IFINcc(loadF_point(IFmageA,X,Y)                                                                      \
                                         ,F_seuil_inferieur                                                                             \
                                         ,F_seuil_superieur                                                                             \
                                         ,tests_stricts_a_gauche                                                                        \
                                         ,tests_stricts_a_droite                                                                        \
                                          )                                                                                             \
                                  ,I                                                                                                    \
                                  ,ZERO                                                                                                 \
                                   )                                                                                                    \
                              );                                                                                                        \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O M P T A G E   D E S   E L E M E N T S   D E S   L I G N E S / C O L O N N E S   D ' U N E   I M A G E  :               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE));

     DEFV(Logical,INIT(compter_les_elements_des_lignes,COMPTER_LES_ELEMENTS_DES_LIGNES));
                                        /* Indique si l'on compte sur les lignes ('VRAI') ou sur les colonnes ('FAUX').              */

     DEFV(Logical,INIT(tests_stricts_a_gauche,TESTS_STRICTS_A_GAUCHE));
     DEFV(Logical,INIT(tests_stricts_a_droite,TESTS_STRICTS_A_DROITE));
                                        /* Est-on dans un ouvert ('VRAI') ou un ferme ('FAUX') ?                                     */

     DEFV(genere_p,INIT(seuil_inferieur,SEUIL_INFERIEUR));
     DEFV(genere_p,INIT(seuil_superieur,SEUIL_SUPERIEUR));
                                        /* Definition du filtre passe-bande (en mode "standard").                                    */

     DEFV(genere_Float,INIT(F_seuil_inferieur,F_SEUIL_INFERIEUR));
     DEFV(genere_Float,INIT(F_seuil_superieur,F_SEUIL_SUPERIEUR));
                                        /* Definition du filtre passe-bande (en mode "non standard").                                */

#include  xrv/ARITHMET.22.I"
#include  xci/valeurs.03.I"

     /*..............................................................................................................................*/
     GET_ARGUMENTSi(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA);
                         GET_ARGUMENT_L("standard=",les_images_sont_standards);

                         GET_ARGUMENT_L("comptage_lignes=""cl=",compter_les_elements_des_lignes);
                         GET_ARGUMENT_N("comptage_colonnes=""cc=",compter_les_elements_des_lignes);

                         GET_ARGUMENT_L("strict_gauche=""sg=",tests_stricts_a_gauche);
                         GET_ARGUMENT_L("strict_droite=""sd=",tests_stricts_a_droite);

                         GET_ARGUMENT_P("seuil_inferieur=""inf=""sinf=",seuil_inferieur);
                         GET_ARGUMENT_P("seuil_superieur=""sup=""ssup=",seuil_superieur);

                         GET_ARGUMENT_F("Fseuil_inferieur=""Finf=""Fsinf=",F_seuil_inferieur);
                         GET_ARGUMENT_F("Fseuil_superieur=""Fsup=""Fssup=",F_seuil_superieur);
                         )
                    );

     Test(PAS_D_ERREUR(CODE_ERROR(gIload_image(les_images_sont_standards,ImageA,IFmageA,nom_imageA))))
          Bblock
          Test(IL_FAUT(compter_les_elements_des_lignes))
               Bblock
               begin_colonne
                    Bblock
                    DEFV(Int,INIT(compteur_des_elements_de_la_ligne_courante,ZERO));

                    begin_ligne
                         Bblock
                         COMPTAGE(compteur_des_elements_de_la_ligne_courante);
                         Eblock
                    end_ligne

                    CAL2(Prin1("%d\n",compteur_des_elements_de_la_ligne_courante));
                    Eblock
               end_colonne
               Eblock
          ATes
               Bblock
               begin_ligne
                    Bblock
                    DEFV(Int,INIT(compteur_des_elements_de_la_colonne_courante,ZERO));

                    begin_colonne
                         Bblock
                         COMPTAGE(compteur_des_elements_de_la_colonne_courante);
                         Eblock
                    end_colonne

                    CAL2(Prin1("%d\n",compteur_des_elements_de_la_colonne_courante));
                    Eblock
               end_ligne
               Eblock
          ETes
          Eblock
     ATes
          Bblock
          Test__CODE_ERREUR__ERREUR07;
          Eblock
     ETes

     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.