EP01_11 — 📈 Análisis de Vecindad: Filtro de Máximo 1D
1.17.11 EP01_11 📈 Análisis de Vecindad: Filtro de Máximo 1D
En esta actividad, debes implementar un filtro morfológico simple de máximo que opera sobre una señal unidimensional (vector).
Lee un entero n, que representa el tamaño del vector.
Lee los n elementos enteros que componen el vector original v1.
Crea un nuevo vector v2, donde cada posición \(i\) es el resultado de la comparación entre el elemento actual y sus vecinos inmediatos:
\[v2[i] = \max(v1[i-1],\; v1[i],\; v1[i+1])\]
📌 Importante:
Bordes: En los extremos del vector (índices \(0\) y \(n-1\)), la vecindad posee solo dos elementos (el propio y el único vecino disponible). En el índice \(0\), compara únicamente \(v1[0]\) y \(v1[1]\). En el último índice, compara solo \(v1[n-2]\) y \(v1[n-1]\).
Salida: Imprime el encabezado “v2:” seguido de los valores del vector resultante, uno por línea.
Consulta un simulador interactivo para esta pregunta en la Figura 1.21 (pasa el mouse sobre los resultados para visualizar la ventana de vecindad utilizada en el cálculo).
1.17.11.1 🧠 ¿Por qué analizar vecinos?
En procesamiento de imágenes, el valor de un píxel rara vez es aislado; depende del contexto que lo rodea. El Filtro de Máximo es la base de la operación de Dilatación en morfología matemática, y sirve para:
Función
Efecto Visual
Realce
Expande estructuras brillantes y “engorda” objetos claros.
Eliminación de Ruido
Elimina pequeños puntos negros (ruido de “sal y pimienta” oscuro).
Relleno
Cierra pequeños agujeros o huecos en formas binarias.
1.17.11.2 📋 Tarea (especificación para VPL)
Entrada:
Un entero n.
En las líneas siguientes, los n elementos enteros del vector.
Salida:
La cadenav2: en la primera línea.
En las líneas siguientes, cada elemento de v2 (uno por línea).
1.17.11.3 📌 Ejemplos
Entrada
Salida
Observación
5
10
20
5
30
15
v2:
20
20
30
30
30
En el índice 1: max(10, 20, 5) = 20
📈 Simulador EP01_11: Filtro de Máximo Local 1DJanela 1x3
Clique nos elementos de v1 (Entrada) para gerar novos valores individuais ou passe o mouse sobre as células de v2 (Resultado) para inspecionar a janela local de vizinhança.
Vetor v1 (Entrada)
⬇️
Vetor v2 (Resultado do Máximo)
Passe o cursor do mouse sobre uma célula do vetor v2 para analisar a janela de máximo local.
Figura 1.21: Simulador EP01_11: Filtro de Máximo Local 1D (Vecindad 1x3 con Condición de Borde)
%%writefile EP01_11.cpp// your solution
Overwriting EP01_11.cpp
TestSuite("EP01_11.cpp").run()
✔️ EP01_11.cases ya existe en casos/
📋 7 caso(s) cargado(s) de casos/EP01_11.cases
🔍 Probando C++: EP01_11.cpp
⚠️ EP01_11.cpp: archivo vacío (menos de 3 líneas). Pruebas omitidas.