Filtro promedio o media aritmética: La idea de los filtros de suavizamiento es obtener el promedio de los pixeles contenidos en una vecindad del tamaño de la máscara del filtro. Las operaciones de suavizado se utilizan para disminuir los efectos negativos que se pueden presentar en una imagen digital como consecuencia de un sistema de muestreo pobre o del canal de transmisión.
El filtro de suavizamiento de la izquierda nos da como resultado el promedio estándar de los pixeles de la imagen definidos en una vecindad de 3 x 3:
Una máscara de tamaño m x n tendrá un factor de normalización de 1/mn.
Filtros de paso alto: Su objetivo es resaltar las zonas de mayor variabilidad eliminando lo que sería la componente media, precisamente la que detectan los filtros de paso bajo. Por otra parte la respuesta de cada pixel está contaminada por la de los pixeles vecinos ya que, considerando la superficie terrestre como lambertiana, la radiación reflejada por un pixel se reparte hacia los pixeles vecinos. Los filtros de paso alto consiguen también eliminar en parte esta contaminación.
Filtro high-boost: El filtro “high-boost” se puede implementar con una pasada de alguna de las dos máscaras siguientes:
Cuando A=1, el filtro high-boost se vuelve un Laplaciano estándar. Mientras el valor de A se incrementa por arriba de 1, la contribución del proceso de realce se vuelve menos importante. Eventualmente, si A es suficientemente grande, la imagen filtrada con el filtro high-boost se volverá aproximadamente igual que la original multiplicada por una constante.
Una imagen filtrada con filtro high-boost, fnb, se define en el punto (x,y) como:
Donde A ³ 1, y como antes, es la versión emborronada de f. Esta ecuación se puede escribir
Algoritmo:
1.- Leemos la imagen a escala de grises.
2.- Saber el tamaño de la imagen.
3.- Creamos las siguientes matrices para los diferentes tipos de filtros.
pasobajo=np.zeros((r,c),dtype=np.uint8)
pasoalto=np.zeros((r,c),dtype=np.uint8)
high=np.zeros((r,c),dtype=np.uint8)
4.- Creamos una matriz con la mascara [[1,1,1],[1,1,1], [1,1,1,]] para obtener el filtro de paso bajo, ya que tenemos la matriz se divide entre nueve.
5.- Se realiza el recorrido de la imagen original con dos ciclos for, una para filas y columnas en la cual utilizamos una parte de la imagen original (3x3), la cual de acuerdo a la posición de los pixeles se multiplicaran con los pixeles de la matriz de la mascara y sumamos el resultado con el siguiente resultado del siguiente pixel y así sucesivamente para obtener el filtro de paso bajo.
6.- Para el filtro de paso alto a la imagen original se le resta la matriz de paso bajo.
7.- Para el filtro high-boost se aplica la formula: A(tiene que ser mayor que 1) por la imagen original menos la matriz de paso bajo.
8.- Se hace un recorrido renglon, columna para igualar los resultados de los filtros(paso bajo, paso alto y high-boost).
9.- Mostrar imagen original, filtro de paso bajo, filtro de paso alto y filtro de high-boost.
10.- Guardamos las imágenes.
¿Como implemento el punto 5 en Matlab? Podes dejar acá escrito?
ResponderBorrar