5.13.2 EP05_02 🟡 Filtro Notch: Eliminando Picos Periódicos
Una cámara de inspección industrial captura imágenes de placas de circuito, pero la fuente de alimentación de la línea de producción introduce una interferencia eléctrica periódica — un patrón de franjas casi imperceptible a simple vista, pero que aparece en el espectro de Fourier como pares de picos brillantes simétricamente posicionados alrededor del centro. El equipo de visión por computadora no puede reprocesar la captura: necesita localizar y borrar quirúrgicamente esos pares de picos en el espectro, preservando todo el resto de la información útil de la imagen.
Ese es el papel del filtro rechaza-banda notch: a diferencia del pasa-bajas (que afecta una región continua), ataca puntos específicos y sus simétricos, dejando el resto del espectro intacto.
5.13.2.1 📋 Directrices de Implementación
- Dimensiones: Leer los enteros \(L\) (filas) y \(C\) (columnas) del espectro de magnitud centrado.
- Datos: Leer los valores enteros de la matriz de magnitud, fila por fila.
- Picos: Leer el entero \(K\) (cantidad de pares de picos a eliminar).
- Para cada uno de los \(K\) picos: leer tres enteros \(\Delta v\), \(\Delta u\), \(r\) — desplazamiento vertical, desplazamiento horizontal y radio del notch.
- Centro del espectro: \((c_y, c_x) = (L \mathbin{//} 2,\; C \mathbin{//} 2)\).
- Supresión simétrica: para cada pico, poner a cero todas las posiciones \((u,v)\) tales que la distancia al punto \((c_y+\Delta v,\, c_x+\Delta u)\) sea \(\le r\), y también todas las posiciones con distancia \(\le r\) al punto simétrico \((c_y-\Delta v,\, c_x-\Delta u)\).
- Salida: Mostrar la matriz resultante con dimensiones \(L \times C\).
5.13.2.2 📌 Restricciones Computacionales
- Simetría obligatoria: cada pico informado genera dos discos puestos a cero (el punto y su simétrico respecto al centro) — olvidar el simétrico es el error más común.
- Superposición: si dos discos se superponen, la posición permanece en cero (no hay “suma” ni restauración).
- Comparación no estricta: una posición se pone a cero si \(\text{distancia} \le r\).
- Orden de lectura: los \(K\) picos deben procesarse en el orden en que aparecen en la entrada, pero el resultado final no depende del orden (las operaciones de poner a cero son conmutativas).
5.13.2.3 🧠 Fundamentación Teórica
| Concepto | Papel en el filtro notch |
|---|---|
| Pico en \((\Delta v, \Delta u)\) | Frecuencia de la interferencia periódica detectada visualmente en el espectro |
| Punto simétrico \((-\Delta v,-\Delta u)\) | Toda DFT de señal real es hermítica: los picos siempre aparecen en pares simétricos al centro |
| Radio \(r\) | Controla la “anchura” del rechazo — \(r\) grande elimina más energía alrededor del pico, pero también información útil |
5.13.2.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 de magnitud (centrada), \(L\) filas.
- Siguiente línea: Entero \(K\).
- \(K\) líneas siguientes: tres enteros \(\Delta v\), \(\Delta u\), \(r\) (separados por espacios).
Salida:
- Matriz resultante en \(L\) filas y \(C\) columnas, separadas por espacios.
5.13.2.5 📌 Ejemplos
| Entrada | Salida | Observación |
|---|---|---|
| 5 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 1 1 0 |
1 2 3 4 5 6 0 8 9 10 11 12 13 14 15 16 17 18 0 20 21 22 23 24 25 |
Centro \((c_y, c_x) = (2, 2)\). El pico informado \((\Delta v, \Delta u) = (1, 1)\) genera el punto \((3, 3)\) (valor 19) y su simétrico \((1, 1)\) (valor 7), ambos puestos a cero con \(r=0\) (solo los puntos exactos). |
%%writefile EP05_02.cpp
// your solutionOverwriting EP05_02.cpp
TestSuite("EP05_02.cpp").run()✔️ EP05_02.cases ya existe en casos/
📋 5 caso(s) cargado(s) de casos/EP05_02.cases
🔍 Probando C++: EP05_02.cpp
⚠️ EP05_02.cpp: archivo vacío (menos de 3 líneas). Pruebas omitidas.