DetectBlobs
La fonction DetectBlobs effectue une forme d’analyse des objets blob, appelée « analyse de connectivité », sur une région d’intérêt (ROI). Pendant cette analyse, les pixels de la ROI sont divisés en deux catégories, objet blob ou arrière-plan, en fonction d’une valeur de niveaux de gris Seuil. Elle sépare tous les pixels inférieurs au seuil et les classe dans la catégorie des « noirs », et fait de même avec les pixels supérieurs au seuil, en les classant dans la catégorie des « blancs ».
Les pixels avec des valeurs similaires sont regroupés en fonction de leur « couleur », et de leur « contact » (ou non) avec les pixels voisins. Les pixels d’arrière-plan peuvent être connectés à leurs voisins s’ils sont en contact au niveau de l’un des côtés. En revanche, les pixels d’objet blob peuvent être connectés par l’intermédiaire d’un de leurs côtés ET d’un de leurs coins.
Une fois l’image traitée, elle est segmentée en valeurs de pixels d’objet blob et d’arrière-plan. Les objets blob trouvés dans la ROI sont identifiés en fonction de leurs caractéristiques physiques et des valeurs qui leur sont attribuées, notamment l’emplacement de l’objet blob dans l’image (ses coordonnées Ligne, Colonne), sa surface, son périmètre, sa compacité et son élongation. Les données des objets blob extraits sont stockées et indiquées dans une structure de données Blobs.
Cette fonction est la première étape de l’analyse des objets blob. FindBlobs et SortBlobs utilisent tous deux des Références à des cellules à la structure de données Blobs d’une fonction DetectBlobs : soit directement, soit par le biais d’un Audit.
DetectBlobs – Entrées
| Paramètre | Description | ||||||||||||||
|
Image |
This parameter must reference a spreadsheet cell that contains an Image data structure; by default, this parameter references A0, the cell containing the data structure. This parameter can also reference other Image data structures, such as those returned by the Image Vision Data Access functions or Fonctions de conversion de coordonnées. |
||||||||||||||
|
Repère |
Définit la région d’intérêt (ROI) par rapport à l’entrée d’un Fixture ou à la sortie du système de coordonnées de l’image d’une fonction Outils de vision. En définissant la ROI par rapport à un Repère, toute rotation ou translation de ce dernier entraînera systématiquement une rotation/translation de la ROI, le cas échéant. Le paramètre par défaut est (0,0,0), le coin supérieur gauche de l’image.
|
||||||||||||||
|
Région |
Aussi appelé région d’intérêt (ROI), spécifie la région de l’image qui fait l’objet d’une analyse. Effectuez un double-clic sur le paramètre Région pour créer un Mode Graphiques interactifs que vous pouvez transformer et faire pivoter. Sélectionnez ce paramètre et cliquez sur le bouton Agrandir la région dans la barre d’outils Modification du projet de la feuille de propriétés pour agrandir automatiquement la région pour qu’elle couvre l’intégralité de l’image.
|
||||||||||||||
|
Remarque : Les paramètres Repère et Région doivent être ajustés en fonction des limites de l’image. S’ils sont hors limites, la fonction renvoie #ERR.
|
|||||||||||||||
|
Région externe |
Ce paramètre utilise les Références à des cellules pour un Annulus, un Circle, une Region, EditAnnulus EditCircle, EditCompositeRegion, EditPolygon et EditRegion. Lorsque ce paramètre est utilisé, la fonction ignore les paramètres Région et de Repère et inspecte la zone d’image spécifiée par la région référencée. Si un contrôle EditCompositeRegion est référencé, la zone d’inspection peut être un mélange de formes. Chaque forme de la région composite peut être affectée, ajoutée ou soustraite (masquage), à la zone d’inspection. Remarque : Si ce paramètre a été défini comme une référence à une région externe, pour utiliser la région interne de la fonction, ce paramètre doit être manuellement mis à zéro en remplaçant la référence de la cellule par la valeur 0. Dans le cas contraire, la fonction continue de faire référence à la région externe.
|
||||||||||||||
|
Nombre à classer |
Détermine le nombre d’objets blob à classer.
Remarque : Si la valeur du paramètre Nombre à classer est supérieure à zéro, DetectBlobs insère automatiquement un tableau de résultats contenant maximum 10 entrées, correspondant aux 10 premiers objets blob de la structure de données Blobs. Pour afficher davantage d’entrées, vous pouvez agrandir le tableau en copiant la dernière ligne et en collant des lignes supplémentaires à la fin. N’oubliez pas d’incrémenter le numéro d’index des nouvelles lignes afin que le bon objet blob soit indexé.
|
||||||||||||||
|
Seuil |
Définit la valeur de niveaux de gris utilisée pour séparer les pixels d’objets blob de ceux de l’arrière-plan. Cette valeur peut être déterminée en utilisant le paramètre automatique de la fonction DetectBlobs (paramètre par défaut), configurée manuellement par tâtonnement, ou définie comme Références à des cellules aux résultats calculés de la fonction Histogram.
|
||||||||||||||
|
Inclure les trous |
Détermine l’une des deux méthodes de traitement des statistiques cumulées en trous.
|
||||||||||||||
|
Blobs sur frontière |
Détermine l’une des deux méthodes de gestion des objets blob chevauchant la limite de la ROI.
|
||||||||||||||
|
Couleur : Blob |
Détermine la couleur de l’objet blob.
Remarque :
Lorsque les paramètres Couleur : Objet blob et Couleur : Arrière-plan sont définis avec la même couleur, les objets blob ne sont pas indiqués. Par exemple, lorsque Couleur : Objet blob est défini sur Noir et Couleur : Arrière-plan est également réglé sur noir, les objets blob ne sont pas indiqués.
Cependant, même si les paramètres Couleur : Objet blob et Couleur : Arrière-plan ont la même couleur, les objets blob sont signalés lorsqu’ils sont dans une zone de couleur opposée (voir les exemples ci-dessous). Si une partie de l’objet blob n’est pas contenue dans la zone de couleur opposée, il n’est pas indiqué.
|
||||||||||||||
|
Couleur : Arrière-plan |
Détermine la couleur de l’arrière-plan dans l’image acquise. L’analyse de connectivité avec 8 voisins est effectuée sur le premier plan, tandis que celle avec 4 voisins est effectuée sur l’arrière-plan.
|
||||||||||||||
|
Surface : Min |
Détermine une limite de surface minimale, sous la forme d’un nombre de pixels, pour tous les objets blob renvoyés (par défaut = 100). Seuls les objets blob dont la surface est supérieure au paramètre Surface : Min. sont renvoyés. La plage de paramètres est la suivante :
Par exemple, lorsqu’il est connecté au système de vision In-Sight D902, la plage de paramètres est comprise entre 0 et 2 304 000 (1920×1200). |
||||||||||||||
|
Surface : Max |
Détermine une limite de surface maximale, sous la forme d’un nombre de pixels, pour tous les objets blob renvoyés (par défaut = 100000). Seuls les objets blob dont la surface est inférieure au paramètre Surface : Max. sont renvoyés. La plage de paramètres est la suivante :
Par exemple, lorsqu’il est connecté au système de vision In-Sight D902, la plage de paramètres est comprise entre 0 et 2 304 000 (1920×1200). |
||||||||||||||
|
Afficher |
Détermine le mode d’affichage des graphiques superposés de DetectBlobs sur l’image.
|
||||||||||||||
DetectBlobs – Sorties
|
Renvoie |
Une structure de données Blobs contenant les objets blob extraits de l’image, ou #ERR si l’un des paramètres d’entrée est incorrect. |
|||||||||||||||||||||||||||||||||
|
Résultats |
Lorsque la fonction DetectBlobs est insérée dans une cellule, un tableau de résultats est créé dans la feuille de calcul à l’aide des Blobs Vision Data Access functions. Remarque :
|
DetectBlobs – Exemple
La fonction DetectBlobs permet d’identifier et repérer les objets blob de pixels connectés, qui peuvent être de différentes formes et tailles. Cet exemple illustre comment les informations renvoyées dans le tableau de résultats de la structure de données DetectBlobs se rapportent aux objets blob trouvés. L’utilisation des informations à des fins de tri et de filtrage ultérieurs des objets blob, en fonction de leurs caractéristiques, est également expliquée.
L’image suivante permet de plus facilement interpréter les valeurs renvoyées dans le tableau de résultats de la fonction DetectBlobs :
Une fonction DetectBlobs a été insérée dans une cellule vide de la feuille de calcul. À partir des formes pertinentes, les paramètres de la feuille de propriété DetectBlobs ont été configurés comme suit :
- Image : Le paramètre par défaut est utilisé pour cet exemple. Ceci dit, il peut faire référence à n’importe quelle structure de données Image, comme une structure de données Image produite par une fonction Filter, qui traite l’image pour supprimer le bruit excessif avant d’analyser les objets blob.
- Repère : Le paramètre par défaut est utilisé, car l’image est fixe et ne sera pas tournée ou déplacée. Cependant, lorsque vous utilisez la fonction DetectBlobs sur des images qui font l’objet de mouvements, il est conseillé d’affecter la région de l’image à un Fixture.
- Région : La région de l’image est agrandie pour inclure toutes les formes dans l’analyse. En cliquant sur le paramètre Région, puis sur le bouton Agrandir la région dans la barre d’outils de la feuille de propriétés, la région est automatiquement étendue pour couvrir la totalité de l’image.
- Nombre à classer : Le Nombre à classer est défini sur six. Ce paramètre peut également être réglé sur 0 : dans ce cas, l’outil extrait automatiquement tous les objets blob qui répondent aux paramètres de couleur et de taille spécifiés dans les paramètres Couleur pour objet blob/Couleur pour arrière-plan et Surface : Min./Surface : Max.
- Seuil : Le paramètre par défaut est utilisé : il calcule automatiquement la valeur de niveaux de gris Seuil. Dans cette image, les différences des valeurs de niveaux de gris sont très prononcées, les pixels sombres et les pixels clairs sont facilement repérables. Lorsque la gradation plus subtile et le paramètre de seuil automatique séparent de façon moins pertinente les valeurs, l’utilisation des fonctions Histogram, par exemple HistHead ou HistTail, pour déterminer les intensités de niveaux de gris dans différentes régions de l’image, peut s’avérer très utile.
- Inclure les trous : Le paramètre par défaut est utilisé, prenant en compte les trous trouvés dans les objets blob. La surface globale des formes d’objets blob avec des trous a été réduite. Si la case à cocher Inclure les trous est cochée, les trous à l’intérieur des objets blob sont indiqués et la surface à l’intérieur des trous est alors ajoutée, augmentant ainsi la surface des objets blob avec des trous.
- Blobs sur frontière : Le paramètre par défaut est utilisé, incluant tous les objets blob qui chevauchent la limite de région de l’image. Avec ce paramètre, si l’image est déplacée vers la gauche et que le plus grand cercle et le plus petit carré chevauchent la limite la plus à gauche de la région de l’image, les parties de ces formes qui se trouvent encore à l’intérieur de la limite de la région sont extraites sous forme d’objets blob. En revanche, si la case n’est pas cochée, les objets blob en question sont ignorés.
- Surface : Min./Max. : Les paramètres par défaut sont utilisés. Ils permettent de filtrer les objets blob de la région pendant la phase d’extraction, évaluant ainsi les objets blob selon les paramètres de limite de surface minimale et maximale pour déterminer si la surface d’objet blob permet ou non de le classer comme tel.
- Afficher : Le paramètre par défaut est utilisé, ce qui permet d’afficher les graphiques de résultat uniquement lorsque la cellule contenant la structure de données Blobs est sélectionnée, comme dans l’exemple ci-dessous.
Après avoir configuré la feuille de propriétés DetectBlobs, une structure de données Blobs et un tableau de données de résultats sont générés.
Les valeurs renvoyées dans le tableau de résultats peuvent être utilisées pour filtrer et classer les objets blob, à l’aide des fonctions FindBlobs et SortBlobs. Par exemple, une fonction FindBlobs peut être insérée dans la feuille de calcul et faire référence à la fonction DetectBlobs. La fonction FindBlobs serait alors utilisée pour filtrer les objets blob en fonction de leur compacité. Ensuite, une fonction SortBlobs serait insérée dans la feuille de calcul et pourrait faire référence à la fonction FindBlobs récemment créée, afin de classer la liste des objets blob en fonction de leur position X, Y.

