> 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/function-blocks/blocks-reference/image-transformations/operations/subtract-images.md).

# Subtract Images

Cette fonction calcule la différence pixel par pixel entre deux images pour mettre en évidence des changements ou des défauts. Elle est utile pour des tâches de comparaison comme détecter les écarts par rapport à une référence, l'inspection visuelle ou l'analyse de mouvement/changement.

## 📥 Entrées

* `Actual Image`\
  Prise d'entrée — l'image source à comparer.
* `Reference Image`\
  Prise d'entrée — l'image à soustraire de l'`Actual Image` (baseline ou référence).

## 📤 Sorties

* `Difference Image`\
  Prise de sortie — image résultante montrant la différence pixel par pixel entre les deux entrées.

## 🕹️ Contrôles

Ce bloc ne comporte pas de contrôles ou widgets accessibles à l'utilisateur.

## 🎨 Fonctionnalités

* Produit une image de différence visuelle qui met en évidence les changements au niveau des pixels entre deux images de mêmes dimensions.
* Compatible avec les images en couleur ou en niveaux de gris (les deux entrées doivent avoir les mêmes dimensions).
* Opération simple et rapide, adaptée comme étape de prétraitement pour des blocs de détection ou de journalisation en aval.

## ⚙️ Mécanisme d'exécution

Lorsque les deux prises d'entrée reçoivent des images, le bloc génère une `Difference Image` en effectuant la soustraction pixel par pixel de la `Reference Image` à partir de la `Actual Image`. Les deux images doivent avoir des dimensions identiques ; si elles diffèrent, le bloc renverra une erreur. La sortie de différence peut ensuite être envoyée vers des blocs de visualisation, de seuillage ou de comptage pour interpréter le résultat.

## 📝 Utilisation

1. Connectez une image source à la prise d'entrée `Actual Image`.
2. Connectez une image de référence ou baseline à la prise d'entrée `Reference Image`.
3. Assurez-vous que les deux images ont la même taille. Si ce n'est pas le cas, insérez le bloc `Image Resize` avant ce bloc.
4. Utilisez la sortie `Difference Image` pour la visualisation ou un traitement ultérieur.

Exemples de flux de travail courants :

* Inspection visuelle : connectez `Difference Image` à `Show Image` pour prévisualiser les changements.
* Détection binaire : envoyez `Difference Image` vers `Image Threshold` pour créer un masque des zones modifiées.
* Quantification : passez le masque seuillé à `Non-zero of Image` pour compter les pixels modifiés.
* Journalisation : enregistrez les résultats avec `Image Logger` ou `Image Write` pour archivage.

## 💡 Astuces

* Vérifiez l'alignement et la résolution des images avant la soustraction. Utilisez `Image Resize` ou des blocs d'alignement géométrique si nécessaire.
* Pour rendre les différences subtiles plus visibles, appliquez `Contrast Optimization` ou `Normalize Image` sur la `Difference Image` avant visualisation.
* Convertissez la différence en masque binaire avec `Image Threshold` pour isoler les changements significatifs. Combinez ensuite ce masque avec `Non-zero of Image` pour obtenir une mesure numérique du changement.
* Pour une inspection rapide pendant le développement, connectez la sortie à `Show Image`. Pour des exécutions automatisées, sauvegardez les résultats via `Image Logger` ou `Image Write`.
* Si vous attendez une sortie mono-canal, vérifiez en amont le format des canaux d'entrée (niveaux de gris vs RGB) et convertissez-les de manière cohérente.

## 🛠️ Dépannage

* Tailles d'images incompatibles\
  Assurez-vous que les deux entrées ont la même largeur et hauteur. Utilisez le bloc `Image Resize` pour rééchantillonner l'une des images.
* Très peu ou pas de différence visible\
  Appliquez `Contrast Optimization` ou `Normalize Image` pour amplifier les petits changements, ou utilisez `Image Threshold` pour créer un masque binaire.
* Couleurs ou canaux inattendus\
  Confirmez que les deux entrées sont dans le même espace colorimétrique (toutes deux en niveaux de gris ou toutes deux en RGB) avant de les connecter.
* Besoin d'une mesure numérique du changement\
  Après seuillage de la différence, envoyez le masque vers `Non-zero of Image` pour obtenir un décompte des pixels modifiés.
