> 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/detections-shapes/detectors/data-matrix-reader2.md).

# Data Matrix Reader2

Ce bloc de fonction décode des codes Data Matrix à partir d'une image et renvoie les valeurs textuelles décodées. Il convient pour la lecture d'un ou plusieurs symboles Data Matrix présents dans une image.

## 📥 Entrées <a href="#inputs" id="inputs"></a>

`Data Matrix Image` Fournissez une image (niveaux de gris ou couleur) contenant des symboles Data Matrix à décoder.

## 📤 Sorties <a href="#outputs" id="outputs"></a>

`Data` Cette sortie renvoie une liste de chaînes de texte décodées trouvées dans l'image d'entrée.

## 🕹️ Contrôles <a href="#controls" id="controls"></a>

`Timeout` Durée limite en millisecondes à attendre pour le décodage. L'augmenter donne au bloc plus de temps pour détecter des symboles faibles ou difficiles.

## ⚙️ Mécanisme d'exécution <a href="#running-mechanism" id="running-mechanism"></a>

Lorsque le bloc est évalué, il examine l'image fournie à la recherche de symboles Data Matrix et tente de décoder chacun d'eux dans le temps imparti par `Timeout`. Si des symboles sont trouvés, leurs valeurs textuelles décodées sont renvoyées sous forme de liste via la sortie `Data`. Si aucun symbole n'est détecté, une liste vide est retournée.

## 🎯 Fonctionnalités <a href="#features" id="features"></a>

* Détecte et décode plusieurs symboles Data Matrix à partir d'une seule image.
* Renvoie les valeurs décodées sous forme de chaînes de texte pour une utilisation aisée en aval.
* Contrôle simple du timeout pour équilibrer rapidité et robustesse de détection.

## 📝 Instructions d'utilisation <a href="#usage" id="usage"></a>

1. Fournissez une source d'image à `Data Matrix Image` — par exemple depuis un bloc caméra ou une image chargée.
2. Ajustez éventuellement `Timeout` pour donner plus de temps aux lectures difficiles.
3. Utilisez la sortie `Data` pour accéder aux valeurs décodées (journalisation, affichage ou traitement ultérieur).

## 💡 Conseils et astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Si le symbole cible se trouve dans une petite zone, recadrez d'abord avec `Image ROI Select` afin que le bloc ne traite que la région pertinente.
* Améliorez la fiabilité de lecture en redimensionnant l'entrée avec `Image Resize` pour augmenter le nombre de pixels du symbole.
* Nettoyez les images bruyantes avec `Blur`, `Denoising` ou `Image Adaptive Threshold` avant d'alimenter ce bloc.
* Utilisez `Show Image` pour prévisualiser la trame exacte analysée pendant l'ajustement du pré-traitement.
* Enregistrez des trames d'exemple avec `Image Logger` ou `Image Write` pour une analyse et un réglage hors ligne.
* Si vous vous attendez à d'autres types de codes (QR, codes-barres linéaires), essayez `Barcode Reader` comme alternative.
* Si les symboles peuvent être tournés, essayez `Image AutoRotator` ou recadrez plusieurs orientations via les outils ROI.

## 🛠️ Dépannage <a href="#troubleshooting" id="troubleshooting"></a>

* Aucune valeur décodée : vérifiez l'éclairage et le contraste, recadrez le symbole avec `Image ROI Select`, augmentez `Timeout` ou agrandissez l'image avec `Image Resize`.
* Texte partiel ou corrompu : assurez-vous que le symbole n'est pas flou — essayez de supprimer le `Blur` ou utilisez une entrée à plus haute résolution.
* Faux négatifs sur des fonds bruyants : appliquez `Image Adaptive Threshold` ou d'autres filtres pour mieux séparer premier plan et arrière-plan.
* Plusieurs symboles mais seuls certains décodés : traitez chaque ROI séparément ou augmentez le `Timeout` et améliorez la qualité d'image pour les symboles manquants.
