| id | area | perimetro | cx | cy | x | y | w | h | circolarità | solidità | vertici |
|---|
8.14.9 EP08_09 🟠 Gradiente di Illuminazione e Soglia Adattativa
In questa variazione, gli oggetti sono immersi in uno sfondo con illuminazione non uniforme (gradiente morbido di illuminazione). La sogliatura semplice a valore singolo fallisce, richiedendo una pre-elaborazione più robusta.
8.14.9.1 📋 Linee guida di implementazione
- Input: immagine in scala di grigi \(H \times W\) con variazione di sfondo da \(20\) a \(180\).
- Pre-elaborazione:
Applicare Soglia Adattativa (es.:
cv2.adaptiveThresholdcon finestra gaussiana di \(15 \times 15\) e costante \(C = 3\)) per isolare gli oggetti indipendentemente dalla variazione dello sfondo.cv2.adaptiveThreshold(img_gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, ksize, C) // 255ksizeeCvengono letti dopo l’immagine.Operazione morfologica di Chiusura (\(3 \times 3\)) per sigillare eventuali difetti nei contorni.
Misurazione e Classificazione: estrarre le misure.
Ordinamento e Output: ordinare per
(bbox[0], bbox[1])e stampare la tabella includendo la colonnaclass.- Per ordinare, usare
medidas.sort(key=lambda m: (m['bbox'][1], m['bbox'][0])), conmedidas = mm.measure(img, precision=0.02).
- Per ordinare, usare
8.14.9.2 📌 Esempi
| Input | Output |
|---|---|
| 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
# Codice PythonOverwriting EP08_09.py
TestSuite("EP08_09.py").run()✔️ EP08_09.cases esiste già in casos/
📋 3 caso/i caricato/i da casos/EP08_09.cases
🔍 Test di Python: EP08_09.py
⚠️ EP08_09.py: file vuoto (meno di 3 righe). Test saltati.