PDI+VC · Ejercicio de Programación

EP03_02 — 🔀 Alpha Blending de Dos Imágenes

3.12.2 EP03_02 🔀 Alpha Blending de Dos Imágenes

En medicina nuclear, imágenes de diferentes modalidades (tomografía computarizada y resonancia magnética) se fusionan para ayudar en el diagnóstico. La mezcla ponderada (alpha blending) es la operación fundamental de este proceso, permitiendo al radiólogo controlar interactivamente el peso de cada modalidad en la imagen mostrada.

Ver en Figura 3.27 una simulación de este EP.

3.12.2.1 📋 Directrices de Implementación

  1. Dimensiones: Leer los enteros \(L\) (filas) y \(C\) (columnas).
  2. Parámetro: Leer el valor real \(\alpha \in [0, 1]\).
  3. Datos: Leer los valores enteros de la matriz \(f_1\) (imagen 1) y luego de la matriz \(f_2\) (imagen 2).
  4. Mapeo: Para cada posición \((i, j)\), calcular:

\[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. Salida: Mostrar la matriz resultante \(L \times C\).

3.12.2.2 📌 Restricciones Computacionales

  • Redondeo: Aplicar round antes de la conversión a entero.
  • Saturación: Confinar al intervalo \([0, 255]\) con \(\text{clip}(x) = \max(0, \min(255, x))\).
  • Operación en float: Realizar la operación en punto flotante antes de redondear.

3.12.2.3 🧠 Fundamentación Teórica

Valor de \(\alpha\) Resultado
\(\alpha = 1.0\) Solo \(f_1\)
\(\alpha = 0.5\) Media aritmética de \(f_1\) y \(f_2\)
\(\alpha = 0.0\) Solo \(f_2\)

3.12.2.4 📦 Especificación de Entrada y Salida (VPL)

Entrada:

  • Línea 1: Entero \(L\).
  • Línea 2: Entero \(C\).
  • Línea 3: Real \(\alpha\).
  • Líneas siguientes: Elementos de \(f_1\) (\(L\) líneas con \(C\) valores cada una).
  • Líneas siguientes: Elementos de \(f_2\) (\(L\) líneas con \(C\) valores cada una).

Salida:

  • Matriz resultante \(L \times C\).

3.12.2.5 📌 Ejemplos

Entrada Salida Observación
1
3
0.5
0 100 200
100 200 50
50 150 125 Media entre las dos imágenes
1
3
1.0
10 20 30
90 80 70
10 20 30 Solo \(f_1\) (alpha=1)
🔀 Simulador EP03_02: Alpha Blending de Dos Imágenes g = α·f1 + (1−α)·f2

Ajusta el parámetro de transparencia α para observar la combinación lineal ponderada píxel a píxel entre las imágenes f1 y f2.

0.50
α = 0.00 → Solo f2  |  α = 0.50 → Media Ponderada Igual  |  α = 1.00 → Solo f1
Imagen f1
Imagen f2
Resultado g
Fórmula: clip(round(0.50 · f1 + 0.50 · f2))
Figura 3.27: Simulador EP03_02: Mezcla alfa de dos imágenes (g = α·f1 + (1−α)·f2)
%%writefile EP03_02.py
# Código Python
Overwriting EP03_02.py
TestSuite("EP03_02.py").run()
✔️ EP03_02.cases ya existe en casos/
📋 6 caso(s) cargado(s) de casos/EP03_02.cases

🔍 Probando Python: EP03_02.py
⚠️ EP03_02.py: archivo vacío (menos de 3 líneas). Pruebas omitidas.