EDI+VA · Esercizio di Programmazione

EP03_01 — ➕ Addizione Saturata di una Costante

3.12.1 EP03_01 ➕ Addizione Saturata di una Costante

Nei sistemi di videosorveglianza, le telecamere in ambienti con illuminazione variabile producono immagini sottoesposte. La regolazione della luminosità mediante addizione saturata di una costante è l’operazione più semplice per una correzione immediata, applicata in tempo reale sui chip delle telecamere integrate e nelle pipeline di pre-elaborazione dei robot mobili.

Vedi in Figura 3.26 una simulazione di questo EP.

3.12.1.1 📋 Linee Guida per l’Implementazione

  1. Dimensioni: Leggere gli interi \(L\) (righe) e \(C\) (colonne).
  2. Costante: Leggere l’intero \(k\) (valore da sommare).
  3. Dati: Leggere i valori interi della matrice originale riga per riga.
  4. Mappatura: Per ogni pixel \(p\), calcolare il nuovo valore tramite l’equazione:

\[p' = \text{clip}(p + k)\]

  1. Output: Visualizzare la matrice risultante con dimensioni \(L \times C\).

3.12.1.2 📌 Vincoli Computazionali

  • Saturazione (Clipping): I valori devono essere confinati nell’intervallo \([0, 255]\): \[\text{clip}(x) = \max(0, \min(255, x))\]
  • Tipo: Il risultato finale deve essere intero (senza cifre decimali).
  • \(k\) può essere negativo: i valori negativi scuriscono l’immagine; quelli positivi la schiariscono.

3.12.1.3 🧠 Fondamento Teorico

Parametro Tipo Impatto Visivo
\(k > 0\) Intero Schiarisce l’immagine; i pixel vicini a 255 saturano in bianco
\(k < 0\) Intero Scurisce l’immagine; i pixel vicini a 0 saturano in nero
\(k = 0\) Intero Immagine invariata

3.12.1.4 📦 Specifica di Input e Output (VPL)

Input:

  • Riga 1: Intero \(L\).
  • Riga 2: Intero \(C\).
  • Riga 3: Intero \(k\).
  • Righe successive: Elementi interi della matrice originale.

Output:

  • Matrice trasformata in \(L\) righe e \(C\) colonne, valori interi separati da spazi.

3.12.1.5 📌 Esempi

Input Output Osservazione
2
3
50
0 100 200
210 240 255
50 150 250
255 255 255
Saturazione a 255 nei pixel alti
1
4
-30
0 20 200 255
0 0 170 225 Saturazione a 0 nei pixel bassi
➕ Simulatore EP03_01: Addizione Satura di Costante p' = clip(p + k)

Regola il valore della costante k per osservare lo spostamento di luminosità dell'immagine e il troncamento per saturazione nell'intervallo [0, 255].

0
Input Originale (p)
Risultato Trasformato (p')
Formula applicata: clip(p + (0))
Figura 3.26: Simulatore EP03_01: Addizione Saturata di Costante (p’ = clip(p + k))
%%writefile EP03_01.py
# Codice Python
Overwriting EP03_01.py
TestSuite("EP03_01.py").run()
✔️ EP03_01.cases esiste già in casos/
📋 5 caso/i caricato/i da casos/EP03_01.cases

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