Descargar

Filtros y convoluciones (Procesamiento de imágenes) (página 2)

Enviado por Pablo Turmero


Partes: 1, 2, 3
edu.red Suavizado, perfilado y bordes. Aplicando distintos operadores de convolución es posible obtener diferentes efectos: Suavizado: o difuminación de la imagen, reducir contrastes abruptos en la imagen. Perfilado: resaltar los contrastes, lo contrario al suavizado. Bordes: detectar zonas de variación en la imagen. Detección de cierto tipo de características, como esquinas, segmentos, etc.

Suavizado y perfilado son más habituales en restauración y mejora de imágenes. Bordes y detección de características suelen usarse más en análisis de imágenes.

edu.red Operadores de suavizado. El operador de suavizado más simple es la convolución de media (media aritmética). Parámetros del operador: Ancho y alto de la región en la que se aplica: w x h. Posición del ancla. Normalmente, w y h son impares y el ancla es el píxel central. La máscara esun simple arrayde unos detamaño wxh. Máscara de media de 3×3 Media de 5×5

edu.red Operadores de suavizado. Ventajas (respecto a otros suavizados): Sencillo y rápido de aplicar. Fácil definir un comportamiento para los píxeles de los bordes: tomar la media de los píxeles que quepan. Recordatorio: el operador de media es separable. Media de 5×5 Total: 25 sumas ?o(n2) ? Media de 5×1 y de 1×5 Total: 10 sumas ?o(2n)

edu.red Operadores de suavizado. En algunos casos puede ser interesante aplicar suavizados direccionales: horizontales, verticales o en cualquier dirección. Media horizontal 5 píxeles Media vertical 3p Media diagonal 3p Media horiz. 31p Media vert. 31p

edu.red Operadores de suavizado. Cuando se aplica la media con tamaños grandes se obtienen resultados artificiosos (a menudo indeseados). Motivo: la media se calcula en una región cuadrada. Sería mejor aplicarlaa una región “redonda”.

O, mejor, usar suavizado gaussiano… Suavizado de media Gaussiana

edu.red Operadores de suavizado. Suavizado gaussiano: media ponderada, donde los pesos toman la forma de una campana de Gauss. Ejemplo. Suavizado gaussiano horizontal. Campana de Gauss f(x) = e -x2/s2 s2 es la varianza Campana discreta 1/64· +

edu.red Operadores de suavizado. La varianza, s2, indica el nivel de suavizado. Varianza grande: campana más ancha, más suavizado. Varianza pequeña: campana más estrecha, menos suavizado. Se mide en píxeles. Cálculo de la máscara gaussiana (1D): calcular la función, discretizar en el rango, discretizar en el valor y calcular el multiplicador…

¿No existe una forma más rápida? Idea: el triángulo de Pascal. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

edu.red Operadores de suavizado. ¡Magia! Las filas del triángulo de Pascal forman discretizaciones de la campana de Gauss. 1/2· 1/4· 1/8· 1/16· 1/32· 1/64· ¿Por qué ocurre así? Recordar el teorema central del límite…

edu.red Operadores de suavizado. Normalmente, el suavizado gaussiano se aplica en dos dimensiones. Los pesos de la máscara dependen de la distancia al píxel central. Campana de Gauss 2D f(x,y) = e -(x2+y2)/s2 1/16· Máscara gaussiana de 3×3 1: blanco0: negro

edu.red Operadores de suavizado. Propiedad interesante: el filtro gaussiano es separable. Resultado: se puede obtener un suavizado 2D aplicando dos máscaras gaussianas bidimensionales, una horizontal y otra vertical. ? ?

edu.red Operadores de suavizado. Resultados de la comparación: Para conseguir un mismo “grado de suavizado” la máscara gaussiana debe ser de mayor tamaño. ? Se puede tomar como medida la varianza de la máscara correspondiente.

El efecto del suavizado gaussiano es más natural (más similar a un desenfoque) que la media.? Suele ser más habitual en procesamiento y análisis de imágenes.

Ambos filtros son separables.? Si la máscara es de nxn, pasamos de o(n2) a o(2n).

edu.red Operadores de bordes. Perfilado y detección de bordes están relacionados con el suavizado: Suavizado: reducir las variaciones en la imagen. Perfilado: aumentar las variaciones en la imagen. Bordes: encontrar las zonas de variación. Valor de píxel 0 640 320 160 480 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192

X Perfil de la img. Suavizado Perfilado Bordes Perfil de una fila de una imagen +

edu.red Operadores de bordes. Matemáticamente, la variación de una función f(x) cualquiera viene dada por la derivada de esa función: f’(x) > 0 : función creciente en X f’(x) < 0 : función decreciente en X f’(x) = 0 : función uniforme en X En nuestro caso, tenemos funciones discretas. La “derivada discreta” se obtiene calculando diferencias. 0 4 2 1 3 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192

6 5 Valor de píxel X f’(x) = ?f/?x ?f ?x ?x = 1 ?f = f(x)-f(x-1) f’(x) = f(x) – f(x-1) f(x) f’(x) Conclusión: la derivada se calculará con máscaras del tipo:

edu.red Operadores de bordes. Máscara de derivada en X (M): Derivada en Y: Derivadas en diagonales: Ejemplo. Derivada en X. R:= M?A Imagen de entrada Derivada en X (x2) A R [0..255]-[0..255]= [-255..255]

edu.red Operadores de bordes. Los bordes decrecientes se saturan a 0… Podemos sumar 128 para apreciar mejor el resultado: Gris (128): diferencia 0 Negro: decreciente Blanco: creciente Derivada X (+128) Derivada Y (+128) Rx Ry Se produce una especie de “bajorrelieve” (emboss), que puede usarse en efectos especiales.

edu.red Operadores de bordes. Los operadores de bordes son muy sensibles al ruido. Es posible (y adecuado) combinar los operadores de bordes con suavizados. ? = Derivada X (+128) Rx R’x Suaviz. + Deriv. X

edu.red Operadores de bordes. Existen algunos operadores de bordes estándar. Filtros de Prewitt: Filtros de Scharr: Filtro de Scharr 3×3, derivada en X Filtro de Scharr 3×3, derivada en Y Filtro de Prewitt 3×3, derivada en X Filtro de Prewitt 3×3, derivada en Y

edu.red Operadores de bordes. Filtros de Sobel: se construyen usando la derivada de la gaussiana. Filtro de Sobel 3×3, derivada en X Filtro de Sobel 3×3, derivada en Y Además, el filtro de Sobel permite calcular derivadas conjuntas en X e Y, derivadas segundas, terceras, etc. Ejemplo. Derivada segunda en X. ? =

edu.red Operadores de bordes. Ejemplos. Imagen de entrada Prewitt Y (3×3) Sobel Y (3×3) Sobel 2ª deriv. Y

edu.red Operadores de bordes. Realmente, en dos o más dimensiones, en lugar de la derivada tiene más sentido el concepto de gradiente. ¿Qué es el gradiente? ? Repasar cálculo… El gradiente indica la dirección de máxima variación de una función (en 2D, la máxima pendiente).

edu.red Operadores de bordes. El gradiente en un punto es un vector (u, v): Ángulo: dirección de máxima variación. Magnitud: intensidad de la variación. (u, v) El gradiente está relacionado con las derivadas: u = Derivada en X del punto v = Derivada en Y del punto Teniendo dy y dx, ¿cuánto vale el ángulo y la magnitud? dx dy

edu.red Operadores de bordes. Cálculo del gradiente: Calcular derivada en X: Dx (por ejemplo, con un filtro de Sobel, Prewitt,…) Calcular derivada en Y: Dy Magnitud del gradiente: Dx2 + Dy2 Ángulo del gradiente: atan2 (Dy, Dx) Valor absoluto de derivada en X (Sobel de 3×3) Valor absoluto de derivada en Y (Sobel de 3×3) Magnitud del gradiente

edu.red Operadores de bordes. El gradiente da lugar al concepto de borde. Un borde en una imagen es una curva a lo largo de la cual el gradiente es máximo. El borde es perpendicular a la dirección del gradiente.

edu.red Operadores de bordes. Los bordes de una escena son invariantes a cambios de luminosidad, color de la fuente de luz, etc. ? En análisis de imágenes usar los bordes (en lugar de las originales).

edu.red Operadores de bordes. Otras formas de calcular los bordes: Calcular la derivada en diferentes direcciones: D1, D2, D3, D4. Para cada punto, la magnitud del gradiente es la derivada de máximo valor absoluto: G(x,y):= max {|D1(x,y)|, |D2(x,y)|, |D3(x,y)|, |D4(x,y)|} La dirección del gradiente viene dada por el ángulo que ha producido el máximo: A(x,y):= argmax {|D1(x,y)|, |D2(x,y)|, |D3(x,y)|, |D4(x,y)|} D1: N-S D2: NE-SO D3: E-O D4: SE-NO

edu.red Operadores de bordes. Otra forma más sencilla (aproximada) es usar máscaras de convolución adecuadas, por ejemplo de Laplace. La función de Laplace es la segunda derivada de la gaussiana. Másc. Gaussiana Operador de suavizado f(x) = e -x2/s2 df(x)/dx Másc. SobelOperador de derivación Másc. LaplacianaOperador de gradiente d2f(x)/dx2

edu.red Operadores de bordes. La máscara laplaciana se define usando la función de Laplace. Ejemplos de máscaras de Laplace. “Diferencia entre el píxel central y la media de sus vecinos…” Imagen de entrada Laplaciana 2 (3×3)

edu.red Operadores de bordes. Detector de bordes de Canny: No sólo usa convoluciones (operadores de gradiente), sino que busca el máximo gradiente a lo largo de un borde. El resultado es una imagen binaria (borde/no borde), ajustable mediante un umbral.

edu.red Operadores de perfilado. Perfilado: destacar y hacer más visibles las variaciones y bordes de la imagen. Es lo contrario al suavizado. Permite eliminar la apariencia borrosa de las imágenes, debida a imperfecciones en las lentes. … aunque tampoco se pueden hacer milagros… Original ? Suavizado Perfilado ?

edu.red Operadores de perfilado. El perfilado se puede conseguir sumando a la imagen original, la laplaciana ponderada por cierto factor. Lo cual equivale a usar una máscara de convolución adecuada: + = + = a· Laplaciana Identidad Perfilado Más o menos perfilado dando distintos pesos, a. 1· Ojo: la función Laplacian usa máscaras “invertidas”, luego a debe ser < 0

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente