PDI+VC · Ejercicio de Programación

EP01_08 — 🎨 Remapeamento por Rango de Intensidad

1.17.8 EP01_08 🎨 Remapeamento por Rango de Intensidad

En esta actividad, debes escribir un programa que aplique transformaciones lineales distintas a diferentes regiones de intensidad de la imagen.

  • Lee dos enteros L y C, que representan las dimensiones de la matriz.
  • Lee los enteros T (umbral), δ₁ (delta 1) y δ₂ (delta 2).
  • Lee los valores enteros de la matriz.
  • Para cada píxel \(p\), aplica la regla de remapeo condicional:

\[\text{resultado} = \begin{cases} p + \delta_1 & \text{si } p < T \\ p + \delta_2 & \text{si } p \ge T \end{cases}\]

  • Imprime la matriz resultante con los nuevos valores de intensidad.

📌 Importante:

  • δ₁ es el offset aplicado a los píxeles oscuros (por debajo del umbral).
  • δ₂ es el offset aplicado a los píxeles claros (mayores o iguales al umbral).
  • Los casos de prueba garantizan que el resultado siempre estará en el rango válido de 0 a 255, por lo tanto, no es necesario manejar saturación ni redondeos.
  • La salida debe mantener la estructura de matriz (L filas y C columnas).

1.17.8.1 🧠 Transformación Condicional de Píxeles

En Procesamiento Digital de Imágenes (PDI), con frecuencia necesitamos tratar regiones de forma independiente. Esta técnica permite, por ejemplo, aclarar solo las sombras de una fotografía (aumentando los píxeles oscuros) sin estallar el brillo de las áreas ya claras, o viceversa.

Rango de Intensidad Condición Operación
Píxeles Oscuros \(p < T\) \(p + \delta_1\)
Píxeles Claros \(p \ge T\) \(p + \delta_2\)

1.17.8.2 📋 Tarea (especificación para VPL)

Entrada:

La primera línea contiene los enteros L y C.

La segunda línea contiene los enteros T, δ₁ y δ₂.

Las líneas siguientes contienen los elementos de la matriz.

Salida:

La matriz transformada con L filas y C columnas, con valores separados por espacios.

1.17.8.3 📌 Ejemplos

Entrada Salida Observación
2 4
128 60 -40
0 100 150 255
80 128 200 30
60 160 110 215
140 88 160 90
Píxeles < 128 suman 60. Píxeles ≥ 128 restan 40.
🎛️ Simulador EP01_08: Remapeo por Rango Condicional p < T → p + δ₁ | p ≥ T → p + δ₂

Ajuste el umbral de separación (T) y los desplazamientos de brillo (δ₁ y δ₂) para aplicar transformaciones de intensidad diferenciadas en las regiones oscuras y claras de la imagen.

128
+60
-40
Entrada Original (p)
Resultado Transformado
Regla activa: p < 128 → p + (+60)  |  p ≥ 128 → p + (-40)
Figura 1.18: Simulador EP01_08: Remapeo por Rango Condicional (Brillo y Contraste por Umbral)
%%writefile EP01_08.py
# tu solución
Overwriting EP01_08.py
TestSuite("EP01_08.py").run()
✔️ EP01_08.cases ya existe en casos/
📋 8 caso(s) cargado(s) de casos/EP01_08.cases

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