EDI+VA · Esercizio di Programmazione

EP01_07 — ⚫ Soglia Manuale: Immagine Binaria

1.17.7 EP01_07 ⚫ Soglia Manuale: Immagine Binaria

In questa attività, devi scrivere un programma che esegua la segmentazione di un’immagine tramite sogliatura (thresholding).

  • Leggi due interi L e C, che rappresentano le dimensioni della matrice.
  • Leggi un intero T, che sarà il valore della soglia (taglio).
  • Leggi i valori interi della matrice.
  • Per ogni pixel \(p\), applica la seguente regola di binarizzazione:

\[\text{risultato} = \begin{cases} 255 & \text{se } p > T \\ 0 & \text{se } p \le T \end{cases}\]

  • Stampa la matrice risultante contenente solo i valori 0 o 255.

📌 Importante:

  • Presta attenzione all’operatore: il pixel diventa bianco (255) solo se è strettamente maggiore di \(T\).
  • L’output deve mantenere la struttura della matrice (L righe e C colonne).
  • Consulta un simulatore interattivo per questo problema su Figura 1.17 (regola il cursore di \(T\) per osservare come gli oggetti vengono isolati dallo sfondo).

1.17.7.1 🧠 Cos’è la Segmentazione?

La sogliatura è il metodo più semplice per separare gli oggetti di interesse dallo sfondo dell’immagine. Trasformando i toni di grigio in bianco e nero puro, creiamo una mappa binaria che facilita il conteggio degli oggetti o l’identificazione delle forme:

Valore del Pixel (\(p\)) Condizione Risultato Finale
Scuro (\(p \le T\)) Sfondo/Rumore 0 (Nero)
Chiaro (\(p > T\)) Oggetto/In evidenza 255 (Bianco)

1.17.7.2 📋 Compito (specifica per VPL)

Input:

La prima riga contiene l’intero L.

La seconda riga contiene l’intero C.

La terza riga contiene l’intero T (soglia).

Le righe successive contengono gli elementi della matrice.

Output:

La matrice binarizzata (0 o 255) con L righe e C colonne.

1.17.7.3 📌 Esempi

Input Output Osservazione
2
4
128
0 100 128 200
50 129 255 64
0 0 0 255
0 255 255 0
Nota che il valore 128 è diventato 0 (poiché \(128 \le 128\))
🎛️ Simulatore EP01_07: Soglia Interattiva dell'Immagine Binario: 0 o 255
128
Ingresso (Scala di Grigi)
Uscita (Maschera Binaria)
Pixel con intensità maggiore di 128 (p > 128) diventano bianchi (255); altrimenti, diventano neri (0).
Figura 1.17: Simulatore EP01_07: Soglia Globale Interattiva (Binarizzazione p > T)
%%writefile EP01_07.py
# la tua soluzione
Overwriting EP01_07.py
TestSuite("EP01_07.py").run()
✔️ EP01_07.cases esiste già in casos/
📋 7 caso/i caricato/i da casos/EP01_07.cases

🔍 Test di Python: EP01_07.py
⚠️ EP01_07.py: file vuoto (meno di 3 righe). Test saltati.