# CompareImage

CompareImage compare une région d’intérêt avec une image modèle, et renvoie une Image avec des pixels blancs lorsque la région ne correspond pas au modèle et ses tolérances.

## CompareImage – Présentation

La fonctionnalité permet d’extraire un modèle de l’image sélectionnée lorsque la case Forcer l’apprentissage, de la feuille de propriétés, est cochée. Si la case n’est pas cochée, CompareImage peut faire correspondre les pixels du modèle à l’image d’entrée : en plus de la comparaison, une image de sortie en niveaux de gris est générée. Les pixels qui ne correspondent pas à l’image du modèle et ses tolérances sont affichés comme des pixels clairs ou blancs.

## CompareImage – Entrées

Paramètres | Description
Image | Ce paramètre doit utiliser les Références à des cellules de la cellule de feuille de calcul contenant une structure de données Image. Par défaut, le paramètre fait référence à A0, la cellule contenant la structure de données Image renvoyée par la fonction. Ce paramètre peut également faire référence à d’autres structures de données Image, telles que celles renvoyées par les Fonctions Image de l’outil de vision.
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.
X | L’offset en X (coordonnées de l’image).
Y | L’offset en Y (coordonnées de l’image).
Thêta | La rotation par rapport à l’axe X de l’image, dans le système de coordonnées de l’image (+/-360 degrés dans le sens horaire).
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.
X | L’offset en X de l’origine (coordonnées du repère).
Y | L’offset en Y de l’origine (coordonnées du repère).
Largeur | Dimension de l’axe X de la région.
Hauteur | Dimension de l’axe Y de la région.
Angle | Orientation du repère.
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.
Forcer l’apprentissage | Détermine le moment où le modèle est extrait de l’image sélectionnée : soit lorsque les dimensions de la ROI sont modifiées, soit lorsque le paramètre Forcer l’apprentissage est activé.
0 = OFF (par défaut) | Le modèle est extrait de l’image sélectionnée uniquement lorsque les dimensions de la ROI sont modifiées. Une fois que l’utilisateur a sélectionné (ou « effectué l’apprentissage de ») une image modèle, ce paramètre désactive le paramètre « Apprentissage » et empêche le modèle d’être écrasé.
1 = ON | Le modèle est extrait de l’image sélectionnée. Choisissez cette option si l’image modèle est en train d’être sélectionnée ou en cours d’apprentissage.
Tolérance des bords | Détermine le nombre de pixels toléré, autour d’un bord, pendant la comparaison des images (0-24 ; par défaut = 3). Plus le nombre est élevé, plus la correspondance des bords entre le modèle et l’image d’entrée est flexible (autrement dit, moins il est probable que les bords mal appariés soient présentés comme des différences dans l’image de sortie).
Interpolation | Détermine le type de comparaison de pixels à réaliser lors du mappage du modèle à l’image d’entrée pour produire l’image de sortie des différences.
0 = Plus proche voisin (par défaut) | Chaque pixel du modèle est comparé au pixel le plus proche dans l’image d’entrée, pour calculer la différence de niveaux de gris normalisée pour chaque pixel. Cette méthode est la plus rapide, mais moins précise.
1 = Bilinéaire | Chaque pixel du modèle est comparé à une moyenne pondérée (qui représente la valeur de niveaux de gris des quatre pixels les plus proches dans l’image d’entrée), pour calculer la différence de niveaux de gris normalisée pour chaque pixel. Cette méthode est plus précise, mais plus lente.
Afficher | Indique les graphiques superposés visibles sur l’image.
0 = masquer tout (par défaut) | Les éléments graphiques disponibles sont masqués, sauf si la cellule contenant la fonction CompareImage est en surbrillance dans la feuille de calcul.
1 = graphiques de résultats uniquement | L’image traitée est affichée à tout moment.
2 = graphiques d’entrée uniquement | Les éléments graphiques associés à la région d’image d’entrée sont toujours affichés.
3 = afficher tout : graphiques d’entrée et image modèle | Les éléments graphiques associés à la région d’image d’entrée sont toujours affichés. Cependant, lorsque vous êtes dans la feuille de propriétés CompareImage, l’image modèle est aussi affichée.

## CompareImage – Sorties

Renvoie | Une structure de données Image contenant l’image traitée, ou #ERR si un paramètre d’entrée est incorrect.

## CompareImage – Exemple

Dans cet exemple, l’objectif est d’utiliser CompareImage pour comparer l’image modèle d’un joint « correct » avec des images d’entrée de joints sur une chaîne de production.

Dans un premier temps, après avoir inséré CompareImage dans la feuille de calcul, l’utilisateur définit la ROI en effectuant un double-clic sur le mot « Région » dans la feuille de propriétés : une zone rouge, associée à la ROI, est alors superposée à l’image. L’utilisateur déplace ou redimensionne la zone à l’aide du curseur, puis clique sur le bouton OK de la barre d’outils Modification du projet (ou appuie sur la touche Entrée) pour confirmer la sélection et revenir à la feuille de propriétés.

Ensuite, l’utilisateur réalise un repérage de l’outil avec une autre structure de données. Dans le cas d’un repérage, l’utilisateur identifie une caractéristique distinctive qui apparaît sur toutes les instances de l’objet, et la désigne comme point de référence pour les outils de vision suivants. Cela permet d’effectuer des comparaisons ou des inspections précises, même si l’objet est légèrement tourné ou déplacé sur la chaîne de production.

Pour utiliser la fonction de repérage, il est nécessaire de cliquer sur le mot « Repère », dans la feuille de propriétés, puis sur le bouton Référence absolue ou Référence relative dans la barre d’outils de la feuille de propriétés.

La vue de la feuille de propriétés est alors remplacée par celle de la feuille de calcul In-Sight. L’utilisateur déplace le curseur pour sélectionner les cellules de ligne, de colonne et d’angle d’une autre structure de données de la feuille de calcul (par exemple FindPatterns) et s’en sert de référence pour le repère. En cliquant sur le bouton OK de la barre d’outils Modification du projet, ou en appuyant sur la touche Entrée, la sélection est confirmée et l’écran de feuille de propriétés s’affiche à nouveau.

Ensuite, l’utilisateur s’assure que la case Forcer l’apprentissage de la feuille de propriétés est cochée, afin d’extraire automatiquement une image modèle (illustrée ci-dessous) lorsqu’une acquisition d’image est déclenchée manuellement. (Cependant, cocher la case Forcer l’apprentissage déclenche l’acquisition d’image : si l’image actuelle est acceptable, l’utilisateur peut éviter la configuration et déclencher manuellement l’acquisition). Une fois qu’un modèle est sélectionné, l’utilisateur décoche la case pour empêcher que le modèle ne soit écrasé.

En acceptant les réglages par défaut des autres paramètres et en cliquant sur OK dans la feuille de propriétés, la configuration prend fin (pour cet exemple) et la fonction est appliquée à l’image d’entrée.

Pendant l’exécution, l’outil compare l’image modèle à l’image d’entrée. Voici un exemple de « mauvaise » image d’entrée, comportant des marques blanches sur le joint (illustrées ci-dessous).

Les différences entre les deux sont illustrées par des pixels clairs dans l’image de sortie en niveaux de gris.

Un autre outil (ci-dessous, DetectBlobs) peut faire référence à l’image de sortie pour décider si le joint réussit ou non l’inspection.