> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/example-projects/tile-width-measurement.md).

# Mesure de largeur de carrelage

### Mesurer la largeur d’un carreau

Les mesures peuvent être délicates selon le contexte du projet. Les blocs fonction prêts à l’emploi d’AugeLab Studio permettent de réaliser des mesures rapidement et facilement, même sur des sujets complexes.

Cet exemple montre comment mesurer la largeur (donc la distance) d’un carreau en bois.

Premièrement, utilisez le bloc de fonction [Load Image](/french/function-blocks/blocks-reference/input-output/image-inputs/load-image.md) et chargez **wood.jpg** depuis le dossier d’images d’exemple fourni par AugeLab Studio.

!\[]\(.assets/gitbook/image (90).png)

Notre objectif est de mesurer la largeur de chaque carreau et d’afficher les valeurs. Ensuite, nous devons prétraiter l’image pour réduire le bruit introduit par la caméra ou l’environnement. Pour cela, le bloc [Blur](/french/function-blocks/blocks-reference/image-transformations/color-filters/blur.md) avec l’option **Median Blur** est un bon choix. Créez la logique suivante :

!\[]\(.assets/gitbook/image (92).png)

Nous laissons *Kernel Size* à 3 pour limiter le prétraitement, car tout traitement excessif peut influencer le résultat final des mesures. Ensuite, nous utiliserons le bloc [Histogram on Line](/french/function-blocks/blocks-reference/image-transformations/analysis/histogram-on-line.md).

Le bloc **Histogram on Line** détecte automatiquement les bords nets et enregistre leurs emplacements sous forme de points selon le seuil et la position fournis. En créant la logique ci-dessous :

!\[]\(.assets/gitbook/image (83).png)

Nous demandons au bloc **Histogram on Line** de calculer les bords à la position horizontale pixel 100, et de rechercher les bords dont la valeur dépasse 100 (valeur entre 0 et 255).

La position horizontale de la ligne de détection (deuxième prise) est cruciale, car d’autres facteurs peuvent facilement provoquer de fausses détections. Essayons la valeur 350 pour voir l’effet :

!\[]\(.assets/gitbook/image (84).png)

Choisir une ligne horizontale plus perturbée a entraîné des fausses détections. Il est donc recommandé de choisir une ligne faiblement affectée par le bruit et l’environnement.

Puisque nous avons calculé avec succès les emplacements des bords de chaque carreau, nous pouvons mesurer la largeur du premier carreau en ajoutant quelques blocs.

D’abord, nous utiliserons la sortie *Peak Mean Locations* du bloc **Histogram on Line**. Cette sortie consiste en une [liste](/french/function-blocks/sockets.md#purple-position) de positions :

!\[]\(.assets/gitbook/image (86).png)

Chaque position contient les coordonnées horizontales et verticales (x, y) des pics. Nous pouvons calculer la distance entre deux points soit en utilisant le bloc [Demux](/french/function-blocks/blocks-reference/data-logic/logic/demux.md), soit en utilisant le bloc [Measure Position Distance](/french/function-blocks/blocks-reference/image-transformations/analysis/measure-position-distance.md).

Utilisez le bloc [List Operations](/french/function-blocks/blocks-reference/data-logic/data-operations/list-operations.md) et choisissez **get** dans le menu déroulant. Suivez la logique ci-dessous :

!\[]\(.assets/gitbook/image (87).png)

La logique ci‑dessus sélectionne le premier élément en fournissant zéro (0) et le deuxième élément en fournissant un (1). En utilisant [Measure Position Distance](/french/function-blocks/blocks-reference/image-transformations/analysis/measure-position-distance.md), les distances en x-y et la distance euclidienne sont calculées et affichées.

Vous aurez remarqué que la distance en y est nulle, car tous les points se trouvent sur la même ligne horizontale.

C’est tout ! Vous avez calculé la largeur du premier carreau.

### Calculer toutes les largeurs des carreaux

Maintenant, calculons les autres largeurs en utilisant des opérations sur les listes et le traitement en lot.

Avec le même bloc **List Operations**, choisissez l’option *pop* dans la liste déroulante. L’option pop supprime l’élément à l’index donné d’une liste. Créez la logique suivante :

!\[]\(.assets/gitbook/image (88).png)

Le bloc **List Operations** copie d’abord la liste fournie puis calcule le résultat demandé. Nous avons créé une liste des emplacements des pics sans le premier élément, puis une autre liste en supprimant le dernier élément.

En les combinant avec [Batch Processing](/french/function-blocks/blocks-reference/data-logic/flow-control/batch-processing.md) et [Data Type Converter](/french/function-blocks/blocks-reference/data-logic/data-operations/data-type-converter.md), nous pouvons calculer la différence de position entre chaque paire de pics :

!\[]\(.assets/gitbook/image (89).png)

Il est important d’utiliser [Data Type Converter](/french/function-blocks/blocks-reference/data-logic/data-operations/data-type-converter.md) lors du traitement par lot. Si un bloc de fonction reçoit un lot (batch), il fonctionne en mode batch. Utilisez l’option *Batch2List* dans son menu pour revenir au mode de fonctionnement normal si nécessaire.

C’est tout ! Vous avez calculé la largeur de tous les carreaux.
