> 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/analysis/histogram-on-curve.md).

# Histogram On Curve

Cette fonction analyse les valeurs de pixels le long d'une ligne courbe détectée sur une image en niveaux de gris ou binaire. Elle détecte des points de la ligne, ajuste une courbe lisse, évalue les valeurs de pixels le long de cette courbe par rapport à un seuil, et renvoie des visualisations et résultats numériques pour vous aider à inspecter la qualité de la ligne et repérer des ruptures ou des pics.

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

`Input Image (Binary Image)` Image en niveaux de gris ou binaire à analyser. Préférable lorsque le contraste avant/arrière-plan est fort.

`Line Location (pixel)` Nombre de lignes d'échantillonnage à utiliser pour détecter la courbe (le bloc échantillonne plusieurs lignes droites et en déduit des points de courbe).

`Line detection threshold` Seuil d'intensité de pixel utilisé lors de la détection des pixels de la ligne (plage valide 0–255).

`Pixel Value Threshold` Seuil d'intensité de pixel utilisé pour évaluer les valeurs de pixels le long de la courbe détectée (plage valide 0–255).

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

`Output Image` Image source annotée montrant les lignes échantillonnées, la courbe et les points détectés.

`Plot Image` Visualisation graphique montrant les profils de pixels et les informations de gradient utilisées durant la détection.

`Curve Image` Visualisation de la courbe détectée et des valeurs de pixels le long de celle‑ci.

`Line Angle` Angle estimé de la courbe ajustée (utile pour des contrôles géométriques).

`Is Line Valid?` Indicateur booléen signifiant si la courbe détectée passe les contrôles de validité internes (utile pour décider de poursuivre le traitement).

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

`Relation` Menu déroulant pour sélectionner la relation d'échantillonnage des lignes (orientation verticale vs horizontale). Cela modifie la manière dont le bloc échantillonne les lignes de l'image pour la détection de la courbe.

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

* Détecte des points de courbe en échantillonnant plusieurs lignes droites à travers l'image et en ajustant un polynôme lisse à ces points.
* Produit des annotations d'image et des diagnostics tracés pour vérifier la qualité de la détection.
* Vérification de validité qui signale les détections peu fiables afin que les blocs en aval puissent gérer les échecs.
* Seuils et nombre de lignes d'échantillonnage ajustables via les entrées pour un contrôle fin de la sensibilité.

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

1. Fournissez une image claire en niveaux de gris ou binaire à `Input Image (Binary Image)`.
2. Réglez `Line Location (pixel)` sur le nombre de lignes d'échantillonnage souhaité (un nombre plus élevé augmente la robustesse mais ralentit).
3. Ajustez `Line detection threshold` pour identifier de manière fiable les pixels de la ligne sur les lignes échantillonnées.
4. Ajustez `Pixel Value Threshold` pour marquer les régions de pixels significatives le long de la courbe ajustée.
5. Inspectez `Output Image`, `Plot Image` et `Curve Image` pour valider la détection. Utilisez `Is Line Valid?` pour décider de poursuivre le traitement.

## 📊 Évaluation <a href="#evaluation" id="evaluation"></a>

À l'exécution, le bloc :

* échantillonne plusieurs lignes droites à travers l'image (orientation choisie via `Relation`),
* détecte les pixels de ligne et calcule les points de courbe,
* ajuste une courbe lisse et calcule l'angle et des statistiques de pixels,
* renvoie des images annotées, des graphiques et des indicateurs de validation pour une utilisation en aval.

## 💡 Astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Prétraitez les images bruitées avec `Blur` pour réduire les pics parasites avant la détection de courbe.
* Utilisez `Image Threshold` pour obtenir une image binaire si le contraste de la courbe est faible — cela améliore souvent la fiabilité de détection.
* Recadrez la zone d'intérêt avec `Image ROI Select` afin que le bloc se concentre sur la région pertinente et évite les bords non liés.
* Envoyez les sorties visuelles vers `Show Image` pour inspecter `Output Image` / `Plot Image` / `Curve Image` pendant que vous ajustez les paramètres.
* Si vous souhaitez conserver les résultats pour révision ultérieure, utilisez `Image Logger` ou `Image Write` avec les images retournées par ce bloc.

(Conseil : combinez en amont des blocs de prétraitement comme `Blur` et `Image Threshold`, puis alimentez ce bloc ; visualisez les résultats avec `Show Image` et archivez-les si besoin avec `Image Logger` ou `Image Write`.)

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

* Si vous obtenez une erreur de détection invalide de la ligne, augmentez le nombre de lignes échantillonnées (`Line Location (pixel)`) ou prétraitez avec `Blur` et `Image Threshold`.
* Si aucun pic n'apparaît dans les graphiques, réduisez les seuils ou améliorez le contraste de `Input Image (Binary Image)`.
* Si la courbe détectée est décalée ou bruitée, recadrez l'image avec `Image ROI Select` pour supprimer les régions distrayantes et réessayez.
