> 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/line-detector.md).

# Line Detector

Ce bloc de fonction détecte et met en évidence les lignes droites dans une image d'entrée. Il propose des contrôles simples pour orienter la détection vers une orientation souhaitée, ajuster la sensibilité et choisir une seule ligne « sélectionnée » selon différents modes de sélection. Le bloc produit également une visualisation d'histogramme des valeurs d'intensité le long de la ligne choisie pour aider à l'analyse.

## 📥 Entrées

`Image Any`\
Image à analyser pour détecter des structures linéaires (couleur ou niveaux de gris).

## 📤 Sorties

`Lined Image`\
Image avec les lignes détectées visualisées.

`Histogram Image`\
Image de l'histogramme d'intensité avec une superposition optionnelle montrant les statistiques pour la ligne sélectionnée.

`Number of Lines`\
Nombre de lignes détectées après filtrage éventuel.

`Selected Line`\
Une seule ligne sélectionnée (forme) choisie selon le mode de sélection choisi.

`Lines`\
Toutes les lignes détectées (formes), renvoyées sous forme de liste lorsque pertinent.

## 🕹️ Contrôles

`Preferred Angle`\
Orientation souhaitée (degrés, 0–180) vers laquelle la détection est favorisée.

`Tolerance (deg)`\
Tolérance en degrés autour de l'orientation préférée. Des valeurs plus faibles limitent la détection aux lignes proches de l'angle préféré.

`Line Selection`\
Mode pour choisir la ligne représentative parmi plusieurs détections : First Position, Last Position, Longest, Shortest, Middle Position, Median Length.

`Hough Threshold (Votes)`\
Sensibilité de détection (votes). Une valeur plus élevée rend la détection plus stricte (moins de lignes).

`Min. Line Length (pixels)`\
Longueur minimale en pixels pour ignorer les segments très courts.

`Max. Line Gap (pixels)`\
Pour la détection par segments, distance maximale entre segments séparés pour qu'ils soient joints en une seule ligne.

## 📊 Mécanisme d'exécution

* L'image d'entrée est préparée pour l'analyse de lignes (conversion et amélioration si nécessaire).
* Les bords et segments proéminents sont localisés sur l'image.
* Les segments détectés sont collectés et (optionnellement) filtrés pour garder ceux proches de `Preferred Angle` selon la `Tolerance (deg)`.
* Une ligne est sélectionnée selon le contrôle `Line Selection`.
* L'image résultat est rendue avec toutes les lignes trouvées affichées et la ligne sélectionnée mise en évidence.
* Un histogramme des valeurs d'intensité est produit ; si une ligne est sélectionnée, l'histogramme affiche aussi des statistiques de base (moyenne, éventuellement écart-type) pour les pixels échantillonnés le long de cette ligne.

## ✨ Fonctionnalités

* Sortie visuelle qui dessine toutes les lignes détectées et met en évidence une ligne choisie pour inspection.
* Modes de sélection flexibles pour choisir la ligne la mieux adaptée à votre tâche.
* Filtrage par angle pour se concentrer sur une orientation donnée.
* Histogramme simple lié à la ligne choisie pour une analyse rapide des intensités.
* Paramètres ajustables pour gérer le compromis sensibilité / tolérance au bruit.

## 📝 Instructions d'utilisation

1. Connectez un bloc produisant une image à l'entrée `Image Any` (par exemple une caméra ou un chargeur d'images).
2. Réglez `Preferred Angle` sur l'orientation attendue dans la scène.
3. Diminuez `Tolerance (deg)` pour vous concentrer strictement sur cette orientation, ou augmentez-la pour accepter plus d'angles variés.
4. Ajustez `Hough Threshold (Votes)`, `Min. Line Length` et `Max. Line Gap` pour trouver un compromis entre manquer des lignes faibles et inclure du bruit.
5. Utilisez `Line Selection` pour choisir la ligne unique qui a du sens pour votre objectif.
6. Inspectez les sorties `Lined Image` et `Histogram Image` ; utilisez les formes de ligne pour un traitement en aval.

## 💡 Conseils et astuces

* Pour des images bruyantes, ajoutez un bloc `Blur` avant afin de lisser le bruit et améliorer la stabilité de la détection.
* Si vos images sont très grandes, utilisez `Image Resize` pour réduire la résolution et accélérer la détection tout en conservant les structures importantes.
* Pour vous concentrer sur une zone particulière, recadrez d'abord avec `Image ROI Select` ou `Get ROI` puis exécutez ce bloc sur l'image recadrée.
* Après détection, combinez `Selected Line` ou `Lines` avec `Line Geometry` pour mesurer angles, distances, intersections ou extraire des coordonnées.
* Pour un débogage visuel, alimentez `Lined Image` dans `Show Image` pour voir les résultats dans un visualiseur plus grand, ou enregistrez des exemples avec `Image Logger` ou `Image Write`.
* Utilisez `Histogram On Line` pour une analyse de pics plus spécialisée le long d'une seule ligne de scan ; cela complète l'histogramme fourni ici.
* Pour dessiner ou annoter des lignes de mesure interactives, combinez avec `Draw Line` puis analysez la ligne dessinée avec ce bloc.

(hints above use only blocks from the provided list)

## 🛠️ Dépannage

* Aucune ligne détectée : Réduisez `Hough Threshold (Votes)`, diminuez `Min. Line Length` ou augmentez `Tolerance (deg)` pour accepter plus de candidats.
* Trop de lignes parasites : Augmentez `Hough Threshold (Votes)` ou augmentez `Min. Line Length` pour ignorer les petits segments bruyants.
* La ligne sélectionnée est inattendue : Essayez d'autres modes `Line Selection` (par exemple Longest ou Middle Position) ou ajustez l'angle préféré et la tolérance.
* L'histogramme semble sans rapport avec la ligne sélectionnée : Vérifiez que la ligne sélectionnée est entièrement à l'intérieur de la zone image ; recadrez avec `Image ROI Select` si nécessaire.

Pour des résultats plus stables en production, prétraitez les images (éclairage, contraste) et testez les plages de paramètres sur des échantillons représentatifs avant déploiement.
