EDI+VA · Esercizio di Programmazione

EP01_05 — 🔄 Negativo di un’Immagine in Ton di Grigio

1.17.5 EP01_05 🔄 Negativo di un’Immagine in Ton di Grigio

In questa attività, si deve scrivere un programma che calcoli il negativo di un’immagine digitale.

  • Leggere due interi L e C, che rappresentano il numero di righe e colonne.
  • Leggere i valori interi che compongono la matrice dell’immagine.
  • Per ogni pixel, applicare la trasformazione di inversione:

\[pixel_{negativo} = 255 - pixel_{originale}\]

  • Stampare la matrice risultante, mantenendo il formato originale (L righe e C colonne).

📌 Importante:

  • I valori di ciascuna riga nell’output devono essere separati da uno spazio bianco.
  • L’output deve contenere solo i numeri della matrice risultante.
  • Vedere un simulatore interattivo per questa questione nella Figura 1.15 (confronto in tempo reale tra la matrice originale e il suo negativo).

1.17.5.1 🧠 Perché è importante? – Inversione di Intensità

Il negativo è una trasformazione lineare di base che inverte la scala di luminosità. È uno strumento essenziale per l’occhio umano per identificare dettagli chiari “nascosti” in sfondi più scuri, ed è ampiamente utilizzato in:

Applicazione Utilità
Immagini Mediche Migliora la visualizzazione di anomalie in tessuti densi (es. Radiografie).
Astronomia Evidenziare galassie e nebulose deboli contro il vuoto dello spazio.
Arti Digitali Effetti estetici e preparazione di maschere di selezione.

1.17.5.2 📋 Compito (specifica per VPL)

Input:

La prima riga contiene l’intero L.

La seconda riga contiene l’intero C.

Le righe successive contengono gli elementi della matrice.

Output:

La matrice invertita con L righe e C colonne.

1.17.5.3 📌 Esempi

Input Output Osservazione
2
3
0 128 255
50 100 255
255 127 0
205 155 55
Dove c’era 0 (nero) diventa 255 (bianco)
🌓 Simulatore EP01_05: Trasformazione del Negativo di Immagine p' = 255 - p

Fai clic sui pixel della matrice Originale (p) per modificarne i livelli di grigio (passo di +51) e osserva l'effetto dell'inversione complementare sulla matrice Negativo (255 - p).

ORIGINALE (p)
NEGATIVO (255 - p)
💡 La trasformazione del negativo mappa i toni scuri (vicini a 0) su toni chiari (vicini a 255) e viceversa, essendo utile per evidenziare dettagli scuri su sfondi chiari.
Figura 1.15: Simulatore EP01_05: Trasformazione del Negativo dell’Immagine (Inversione di Intensità)
%%writefile EP01_05.py
# la tua soluzione
Overwriting EP01_05.py
TestSuite("EP01_05.py").run()
✔️ EP01_05.cases esiste già in casos/
📋 7 caso/i caricato/i da casos/EP01_05.cases

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