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 ImagenBinario: 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.