| id | aire | périmètre | cx | cy | x | y | w | h | circularité | solidité | sommets |
|---|
8.14.9 EP08_09 🟠 Gradient d’éclairage et seuillage adaptatif
Dans cette variante, les objets sont immergés dans un fond avec un éclairage non uniforme (gradient doux d’éclairage). Le seuillage simple par valeur unique échoue, nécessitant un prétraitement plus robuste.
8.14.9.1 📋 Directives d’implémentation
- Entrée : image en niveaux de gris \(H \times W\) avec une variation de fond de \(20\) à \(180\).
- Prétraitement :
Appliquer un seuillage adaptatif (ex. :
cv2.adaptiveThresholdavec une fenêtre gaussienne de \(15 \times 15\) et une constante \(C = 3\)) pour isoler les objets indépendamment de la variation du fond.cv2.adaptiveThreshold(img_gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, ksize, C) // 255ksizeetCsont lus après l’image.Opération morphologique de fermeture (\(3 \times 3\)) pour sceller d’éventuelles défaillances dans les contours.
Mesure et classification : extraire les mesures.
Tri et sortie : trier par
(bbox[0], bbox[1])et imprimer le tableau incluant la colonneclass.- Pour trier, utiliser
medidas.sort(key=lambda m: (m['bbox'][1], m['bbox'][0])), avecmedidas = mm.measure(img, precision=0.02).
- Pour trier, utiliser
8.14.9.2 📌 Exemples
| Entrée | Sortie |
|---|---|
| 16 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … k 20 |
id area perimeter cx cy x y w h circularity solidity vertices 1 9.0 12.0 10.0 5.0 8 3 5 5 0.79 1.000 4 2 28.3 18.8 25.0 12.0 22 9 7 7 1.00 1.000 3 |
%%writefile EP08_09.py
# Code PythonOverwriting EP08_09.py
TestSuite("EP08_09.py").run()✔️ EP08_09.cases existe déjà dans casos/
📋 3 cas chargé(s) depuis casos/EP08_09.cases
🔍 Test de Python : EP08_09.py
⚠️ EP08_09.py : fichier vide (moins de 3 lignes). Tests ignorés.