EDI+VA · Esercizio di Programmazione

EP03_02 — 🔀 Alpha Blending di Due Immagini

3.12.2 EP03_02 🔀 Alpha Blending di Due Immagini

In medicina nucleare, immagini di diverse modalità (tomografia computerizzata e risonanza magnetica) vengono fuse per supportare la diagnosi. La miscela ponderata (alpha blending) è l’operazione fondamentale di questo processo, consentendo al radiologo di controllare interattivamente il peso di ciascuna modalità nell’immagine visualizzata.

Vedi in Figura 3.27 una simulazione di questo EP.

3.12.2.1 📋 Linee Guida di Implementazione

  1. Dimensioni: Leggere gli interi \(L\) (righe) e \(C\) (colonne).
  2. Parametro: Leggere il valore reale \(\alpha \in [0, 1]\).
  3. Dati: Leggere i valori interi della matrice \(f_1\) (immagine 1) e successivamente della matrice \(f_2\) (immagine 2).
  4. Mappatura: Per ogni posizione \((i, j)\), calcolare:

\[g(i,j) = \text{clip}\left(\text{round}\left(\alpha \cdot f_1(i,j) + (1-\alpha) \cdot f_2(i,j)\right)\right)\]

  1. Uscita: Visualizzare la matrice risultante \(L \times C\).

3.12.2.2 📌 Vincoli Computazionali

  • Arrotondamento: Applicare round prima della conversione a intero.
  • Saturazione: Confinare all’intervallo \([0, 255]\) con \(\text{clip}(x) = \max(0, \min(255, x))\).
  • Operazione in virgola mobile: Eseguire l’operazione in virgola mobile prima di arrotondare.

3.12.2.3 🧠 Fondamenti Teorici

Valore di \(\alpha\) Risultato
\(\alpha = 1.0\) Solo \(f_1\)
\(\alpha = 0.5\) Media aritmetica di \(f_1\) e \(f_2\)
\(\alpha = 0.0\) Solo \(f_2\)

3.12.2.4 📦 Specifica di Input e Output (VPL)

Input:

  • Riga 1: Intero \(L\).
  • Riga 2: Intero \(C\).
  • Riga 3: Reale \(\alpha\).
  • Righe successive: Elementi di \(f_1\) (\(L\) righe con \(C\) valori ciascuna).
  • Righe successive: Elementi di \(f_2\) (\(L\) righe con \(C\) valori ciascuna).

Output:

  • Matrice risultante \(L \times C\).

3.12.2.5 📌 Esempi

Input Output Osservazione
1
3
0.5
0 100 200
100 200 50
50 150 125 Media tra le due immagini
1
3
1.0
10 20 30
90 80 70
10 20 30 Solo \(f_1\) (alpha=1)
🔀 Simulatore EP03_02: Alpha Blending di Due Immagini g = α·f1 + (1−α)·f2

Regola il parametro di trasparenza α per osservare la combinazione lineare ponderata pixel per pixel tra le immagini f1 e f2.

0.50
α = 0.00 → Solo f2  |  α = 0.50 → Media Ponderata Uguale  |  α = 1.00 → Solo f1
Immagine f1
Immagine f2
Risultato g
Formula: clip(round(0.50 · f1 + 0.50 · f2))
Figura 3.27: Simulatore EP03_02: Alpha Blending di Due Immagini (g = α·f1 + (1−α)·f2)
%%writefile EP03_02.py
# Codice Python
Overwriting EP03_02.py
TestSuite("EP03_02.py").run()
✔️ EP03_02.cases esiste già in casos/
📋 6 caso/i caricato/i da casos/EP03_02.cases

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