PDI+VC · Ejercicio de Programación

EP03_03 — 🎭 Inversión de Imagen (Negativo Fotográfico)

3.12.3 EP03_03 🎭 Inversión de Imagen (Negativo Fotográfico)

En radiología, las imágenes de rayos X se visualizan tradicionalmente en negativo: los huesos aparecen en negro sobre fondo blanco. La operación de negativo fotográfico se aplica rutinariamente en PACS (Picture Archiving and Communication Systems) para facilitar la detección de fracturas y densidades óseas.

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

3.12.3.1 📋 Directrices de Implementación

  1. Dimensiones: Leer los enteros \(L\) (filas) y \(C\) (columnas).
  2. Datos: Leer los valores enteros de la matriz original.
  3. Mapeo: Para cada píxel \(p\), calcular el negativo:

\[p' = 255 - p\]

  1. Salida: Mostrar la matriz resultante de \(L \times C\).

3.12.3.2 📌 Restricciones Computacionales

  • Sin necesidad de recorte: El resultado de \(255 - p\) con \(p \in [0, 255]\) siempre está \(\in [0, 255]\).
  • Tipo entero: La salida debe ser valores enteros.
  • Equivalencia lógica: La operación es idéntica al NOT bit a bit (mm::bnot) en imágenes de 8 bits.

3.12.3.3 🧠 Fundamentación Teórica

Píxel Original \(p\) Píxel Negativo \(p'\) Observación
0 (negro) 255 (blanco) Inversión total
128 (gris medio) 127 (gris medio) Valor central
255 (blanco) 0 (negro) Inversión total

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

Entrada:

  • Línea 1: Entero \(L\).
  • Línea 2: Entero \(C\).
  • Líneas siguientes: Elementos enteros de la matriz original.

Salida:

  • Matriz negativa en \(L\) filas y \(C\) columnas.

3.12.3.5 📌 Ejemplos

Entrada Salida Observación
1
4
0 128 200 255
255 127 55 0 Inversión de cada píxel
2
2
10 20
30 40
245 235
225 215
Matriz 2x2 invertida
🎭 Simulador EP03_03: Negativo Fotográfico (Inversión) p' = 255 − p

Observe la inversión complementaria de intensidad: los tonos oscuros se vuelven claros y los tonos claros se vuelven oscuros restando cada píxel del valor máximo de 255.

Entrada Original (p)
Negativo (p' = 255 − p)
 
Fórmula aplicada: p' = 255 − p
Figura 3.28: Simulador EP03_03: Inversión de Imagen — Negativo Fotográfico (p’ = 255 − p)
%%writefile EP03_03.cpp
// your solution
Overwriting EP03_03.cpp
TestSuite("EP03_03.cpp").run()
✔️ EP03_03.cases ya existe en casos/
📋 5 caso(s) cargado(s) de casos/EP03_03.cases

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