PDI+VC · Ejercicio de Programación

EP01_07 — ⚫ Umbralización Manual: Imagen Binaria

1.17.7 EP01_07 ⚫ Umbralización Manual: Imagen Binaria

En esta actividad, debes escribir un programa que realice la segmentación de una imagen mediante la umbralización (thresholding).

  • Lee dos enteros L y C, que representan las dimensiones de la matriz.
  • Lee un entero T, que será el valor del umbral (corte).
  • Lee los valores enteros de la matriz.
  • Para cada píxel \(p\), aplica la siguiente regla de binarización:

\[\text{resultado} = \begin{cases} 255 & \text{si } p > T \\ 0 & \text{si } p \le T \end{cases}\]

  • Imprime la matriz resultante que contenga solo los valores 0 o 255.

📌 Importante:

  • Presta atención al operador: el píxel solo se vuelve blanco (255) si es estrictamente mayor que \(T\).
  • La salida debe mantener la estructura de matriz (L filas y C columnas).
  • Consulta un simulador interactivo para esta pregunta en la Figura 1.17 (ajusta el control deslizante de \(T\) para observar cómo los objetos se aíslan del fondo).

1.17.7.1 🧠 ¿Qué es la Segmentación?

La umbralización es el método más simple para separar objetos de interés del fondo de la imagen. Al transformar tonos de gris en blanco y negro puro, creamos un mapa binario que facilita el conteo de objetos o la identificación de formas:

Valor del Píxel (\(p\)) Condición Resultado Final
Oscuro (\(p \le T\)) Fondo/Ruido 0 (Negro)
Claro (\(p > T\)) Objeto/Destacado 255 (Blanco)

1.17.7.2 📋 Tarea (especificación para VPL)

Entrada:

La primera línea contiene el entero L.

La segunda línea contiene el entero C.

La tercera línea contiene el entero T (umbral).

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

Salida:

La matriz binarizada (0 o 255) con L filas y C columnas.

1.17.7.3 📌 Ejemplos

Entrada Salida Observación
2
4
128
0 100 128 200
50 129 255 64
0 0 0 255
0 255 255 0
Observa que el valor 128 se convirtió en 0 (pues \(128 \le 128\))
🎛️ Simulador EP01_07: Binarización Interactiva de Imagen Binario: 0 o 255
128
Entrada (Escala de Grises)
Salida (Máscara Binaria)
Píxeles con intensidad mayor que 128 (p > 128) se vuelven blancos (255); de lo contrario, se vuelven negros (0).
Figura 1.17: Simulador EP01_07: Umbralización Global Interactiva (Binarización p > T)
%%writefile EP01_07.cpp
// your solution
Overwriting EP01_07.cpp
TestSuite("EP01_07.cpp").run()
✔️ EP01_07.cases ya existe en casos/
📋 7 caso(s) cargado(s) de casos/EP01_07.cases

🔍 Probando C++: EP01_07.cpp
⚠️ EP01_07.cpp: archivo vacío (menos de 3 líneas). Pruebas omitidas.