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 et chargez wood.jpg depuis le dossier dâimages dâexemple fourni par AugeLab Studio.
.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 avec lâoption Median Blur est un bon choix. CrĂ©ez la logique suivante :
.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.
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 :
.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 :
.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 de positions :
.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, soit en utilisant le bloc Measure Position Distance.
Utilisez le bloc List Operations et choisissez get dans le menu déroulant. Suivez la logique ci-dessous :
.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, 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 :
.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 et Data Type Converter, nous pouvons calculer la différence de position entre chaque paire de pics :
.png)
Il est important dâutiliser Data Type Converter 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.
Mis Ă jour