stringtranslate.com

Filtro Kuwahara

El filtro Kuwahara es un filtro de suavizado no lineal que se utiliza en el procesamiento de imágenes para la reducción adaptativa del ruido. La mayoría de los filtros que se utilizan para suavizar imágenes son filtros de paso bajo lineales que reducen eficazmente el ruido pero también difuminan los bordes. Sin embargo, el filtro Kuwahara puede aplicar suavizado a la imagen mientras conserva los bordes.

El filtro Kuwahara modificado para imágenes en color reduce eficazmente el ruido sin difuminar los bordes.

Lleva el nombre de Michiyoshi Kuwahara, Ph.D., quien trabajó en las Universidades de Kioto y Osaka Sangyo en Japón , desarrollando las primeras imágenes médicas del músculo cardíaco dinámico en los años 1970 y 1980.

El operador de Kuwahara

Ventana utilizada por un filtro Kuwahara. Está dividida en 4 regiones cuadradas a, b, c, d, y los píxeles ubicados en la fila y columna centrales pertenecen a más de una región.

Supongamos que se trata de una imagen en escala de grises y que tomamos una ventana cuadrada de tamaño centrado alrededor de un punto de la imagen. Este cuadrado se puede dividir en cuatro regiones cuadradas más pequeñas, cada una de las cuales será [1]

donde es el producto cartesiano . Los píxeles ubicados en los límites entre dos regiones pertenecen a ambas regiones, por lo que hay una ligera superposición entre las subregiones.

Se calculan la media aritmética y la desviación estándar de las cuatro regiones centradas alrededor de un píxel (x,y) y se utilizan para determinar el valor del píxel central. La salida del filtro Kuwahara para cualquier punto se expresa mediante donde .

El comportamiento del filtro Kuwahara para 2 casos.
El efecto de utilizar un filtro Kuwahara en una imagen original (arriba a la izquierda) utilizando ventanas con tamaños de 5, 9 y 15 píxeles.

Esto significa que el píxel central tomará el valor medio del área que sea más homogénea. La ubicación del píxel en relación con un borde juega un papel importante a la hora de determinar qué región tendrá la mayor desviación estándar. Si, por ejemplo, el píxel está ubicado en el lado oscuro de un borde, lo más probable es que tome el valor medio de la región oscura. Por otro lado, si el píxel está ubicado en el lado más claro de un borde, lo más probable es que tome un valor claro. En el caso de que el píxel esté ubicado en el borde, tomará el valor de la región más suave y menos texturizada. El hecho de que el filtro tenga en cuenta la homogeneidad de las regiones garantiza que conservará los bordes mientras que el uso de la media crea el efecto de desenfoque.

De manera similar al filtro de mediana, el filtro Kuwahara utiliza un enfoque de ventana deslizante para acceder a cada píxel de la imagen. El tamaño de la ventana se elige de antemano y puede variar según el nivel de desenfoque deseado en la imagen final. Las ventanas más grandes suelen dar como resultado la creación de imágenes más abstractas, mientras que las ventanas pequeñas producen imágenes que conservan sus detalles. Por lo general, se eligen ventanas cuadradas con lados que tienen un número impar de píxeles para lograr simetría. Sin embargo, existen variaciones del filtro Kuwahara que utilizan ventanas rectangulares. Además, no es necesario que las subregiones se superpongan o tengan el mismo tamaño siempre que cubran toda la ventana.

Imágenes en color

En el caso de las imágenes en color, no se debe aplicar el filtro a cada canal RGB por separado y luego volver a combinar los tres canales de color filtrados para formar la imagen RGB filtrada. El problema principal con esto es que los cuadrantes tendrán diferentes desviaciones estándar para cada uno de los canales. Por ejemplo, el cuadrante superior izquierdo puede tener la desviación estándar más baja en el canal rojo, pero el cuadrante inferior derecho puede tener la desviación estándar más baja en el canal verde. Esta situación daría como resultado que el color del píxel central se determine por diferentes regiones, lo que podría generar artefactos de color o bordes más borrosos.

Para superar este problema, para las imágenes en color se debe utilizar un filtro Kuwahara ligeramente modificado. La imagen se convierte primero a otro espacio de color, el espacio de color HSV . El filtro modificado actúa entonces sólo sobre el canal de "brillo", la coordenada de valor en el modelo HSV. La varianza del "brillo" de cada cuadrante se calcula para determinar el cuadrante del que se debe tomar el color filtrado final. El filtro producirá una salida para cada canal que corresponderá a la media de ese canal del cuadrante que tuvo la desviación estándar más baja en "brillo". Esto garantiza que sólo una región determinará los valores RGB del píxel central.

ImageMagick utiliza un enfoque similar, pero utilizando el Luma Rec. 709 como métrica de brillo. [2]

Implementación de Julia

La salida del código julia
Usando estadísticas Usando imágenes "Calcula un color promedio a partir de una lista de colores"rgbAverage ( colores ) = RGB (  suma ( mapa ( c -> c . r , colores )) / longitud ( colores ),     suma ( mapa ( c -> c . g , colores )) / longitud ( colores ),     suma ( mapa ( c -> c . b , colores )) / longitud ( colores )     );""" kuwahara(yo, tamaño_de_ventana)Aplica el filtro kuwahara a una imagen `I`, utilizando un cuadrado de ventana de tamaño `window_size`"""función kuwahara ( I , tamaño_ventana )  # Convierte la imagen a un espacio de color hsv# (necesario para ejecutarse en imágenes en color)hsv = VHS . ( yo )  # Obtiene el valor de brillo como valores[y, x]valores = canalvista ( float . ( hsv ))[ 3 , : , : ]   # Para Rec.601 Luma, reemplace las dos líneas anteriores con: # valores = Gris.(I)# Crea una imagen vacía de las mismas dimensiones que la entrada imagen_resultante = similar ( I )  # El tamaño de cada cuadrante de la ventana.tamaño_cuadrante = Int ( ceil ( tamaño_ventana / 2 ))     # (y, x) bucle sobre la imagen original para y en 1 : tamaño ( I , 1 )     para x en 1 : tamaño ( I , 2 )    # La posición superior izquierda de la ventanatl_x = x - ( tamaño de ventana ÷ 2 )      tl_y = y - ( tamaño de ventana ÷ 2 )      # Función que mantiene un número entre 1 y el tamaño de la imagen# (se asegura de que todas las posiciones que estamos usando sean válidas)c1 ( i ) = mapa ( j -> abrazadera ( j , 1 , tamaño ( valores , 1 )), i )       c2 ( i ) = mapa ( j -> abrazadera ( j , 1 , tamaño ( valores , 2 )), i )       # Las posiciones de cada cuadrantecuadrante_a = [ c1 ( tl_y : tamaño_cuadrante + tl_y ), c2 ( tl_x : tl_x + tamaño_cuadrante )]   cuadrante_b = [ c1 ( tl_y : tamaño_cuadrante + tl_y ), c2 ( tl_x + tamaño_cuadrante : tl_x + tamaño_ventana )]   cuadrante_c = [ c1 ( tl_y + tamaño_cuadrante : tl_y + tamaño_ventana ), c2 ( tl_x : tl_x + tamaño_cuadrante )]    cuadrante_d = [ c1 ( tl_y + tamaño_cuadrante : tl_y + tamaño_ventana ), c2 ( tl_x + tamaño_cuadrante : tl_x + tamaño_ventana )]   # Desviación estándar de cada cuadranteσ_a = std ( valores [ cuadrante_a ... ])  σ_b = std ( valores [ cuadrante_b ... ])  σ_c = std ( valores [ cuadrante_c ... ])  σ_d = std ( valores [ cuadrante_d ... ])  # Seleccione el cuadrante con la desviación estándar más pequeñacuadrantes = [ cuadrante_a , cuadrante_b , cuadrante_c , cuadrante_d ]     mín = argmín ([ σ_a , σ_b , σ_c , σ_d ])     cuadrante = cuadrantes [ min ]  # El píxel que estamos procesando recibe el promedio del cuadrantepíxeles = I [ cuadrante ... ]  imagen_resultante [ y , x ] = rgbAverage ( píxeles )   fin fin devolver imagen_resultante fin# Código de prueba con una imagen de muestraurl = "https://upload.wikimedia.org/wikipedia/commons/7/73/León_esperando_en_Namibia.jpg"  Descargar ( url , "lion.jpg" ) img = carga ( "león.jpg" )  tamaño de ventana = 13  resultado = kuwahara ( img , tamaño_ventana )   guardar ( "resultado.png" , resultado ) 

Aplicaciones

Filtro Kuwahara utilizado para crear un efecto similar a una pintura en una imagen.

Originalmente, el filtro Kuwahara se propuso para su uso en el procesamiento de imágenes angiocardiográficas RI del sistema cardiovascular. [3] El hecho de que se conserven los bordes al suavizar lo hace especialmente útil para la extracción y segmentación de características y explica por qué se utiliza en imágenes médicas .

Sin embargo, el filtro Kuwahara también tiene muchas aplicaciones en la fotografía artística y de imágenes artísticas debido a su capacidad para eliminar texturas y afinar los bordes de las fotografías. El nivel de abstracción ayuda a crear un efecto de pintura deseable en las fotografías artísticas, especialmente en el caso de la versión de imagen en color del filtro. Estas aplicaciones han tenido un gran éxito y han fomentado investigaciones similares en el campo del procesamiento de imágenes para las artes.

Aunque la gran mayoría de aplicaciones han sido en el campo del procesamiento de imágenes, ha habido casos que utilizan modificaciones del filtro Kuwahara para tareas de aprendizaje automático como la agrupación en clústeres. [4]

El filtro Kuwahara se ha implementado en CVIPtools . [5]

Desventajas y restricciones

El filtro Kuwahara, a pesar de sus capacidades de conservación de bordes, tiene ciertos inconvenientes.

  1. A primera vista, se puede observar que el filtro Kuwahara no tiene en cuenta el caso en el que dos regiones tienen desviaciones estándar iguales. Esto no suele ser así en imágenes reales, ya que es bastante difícil encontrar dos regiones con exactamente la misma desviación estándar debido al ruido que siempre está presente. En los casos en los que dos regiones tienen desviaciones estándar similares, el valor del píxel central podría decidirse al azar por el ruido en estas regiones. Nuevamente, esto no sería un problema si las regiones tuvieran la misma media. Sin embargo, no es inusual que regiones con medias muy diferentes tengan la misma desviación estándar. Esto hace que el filtro Kuwahara sea susceptible al ruido. Se han propuesto diferentes formas de abordar este problema, una de las cuales es establecer el valor del píxel central en en los casos en que la desviación estándar de dos regiones no difiere más de un cierto valor .
  2. Los artefactos de bloque creados al usar el filtro Kuwahara son visibles en la imagen de la derecha.
    También se sabe que el filtro Kuwahara crea artefactos de bloques en las imágenes, especialmente en las regiones de la imagen que tienen mucha textura. Estos bloques alteran la suavidad de la imagen y se considera que tienen un efecto negativo en la estética de la imagen. Este fenómeno se produce debido a la división de la ventana en regiones cuadradas. Una forma de superar este efecto es tomar ventanas que no sean rectangulares (es decir, ventanas circulares) y separarlas en regiones más no rectangulares. También ha habido enfoques en los que el filtro adapta su ventana dependiendo de la imagen de entrada. [6]

Extensiones del filtro Kuwahara

El éxito del filtro Kuwahara ha impulsado el desarrollo de filtros suavizadores que mejoran los bordes. Se han propuesto varias variaciones para un uso similar, la mayoría de las cuales intentan solucionar los inconvenientes del filtro Kuwahara original.

El "filtro Kuwahara generalizado" propuesto por P. Bakker [7] considera varias ventanas que contienen un píxel fijo. A cada ventana se le asigna una estimación y un valor de confianza. El valor del píxel fijo toma entonces el valor de la estimación de la ventana con la confianza más alta. Este filtro no se caracteriza por la misma ambigüedad en presencia de ruido y logra eliminar los artefactos de bloque.

El filtro "Media de mínima varianza" (MLV), propuesto por MA Schulze [8], también produce resultados de suavizado que mejoran los bordes de las imágenes. De manera similar al filtro Kuwahara, supone una ventana de tamaño , pero en lugar de buscar entre cuatro subregiones de tamaño la que tenga la mínima varianza, busca entre todas las subregiones posibles. Esto significa que al píxel central de la ventana se le asignará la media de la subregión de entre todas las posibles que tenga la menor varianza.

El "filtro Kuwahara adaptativo", propuesto por K. Bartyzel, [9] es una combinación del filtro Kuwahara anisotrópico y el filtro de mediana adaptativo. En comparación con el filtro Kuwahara estándar, tanto los objetos como los bordes conservan una mejor calidad. A diferencia del filtro Kuwahara estándar, el tamaño de la ventana cambia según las propiedades locales de la imagen. Para cada una de las cuatro áreas básicas que rodean un píxel, se calculan la media y la varianza. Luego, el tamaño de la ventana de cada una de las cuatro áreas básicas se incrementa en 1. Si la varianza de una nueva ventana es menor que antes del cambio de tamaño de la ventana del filtro, entonces la media y la varianza del área básica tomarán los nuevos valores calculados. El tamaño de la ventana continúa incrementándose hasta que la nueva varianza sea mayor que la anterior, o se alcance el tamaño máximo de ventana permitido. Luego se compara la varianza de las cuatro áreas y el valor del píxel de salida es el valor promedio del área básica para la cual la varianza fue la más pequeña.

JE Kyprianidis también propuso un intento más reciente de suavizado de mejora de bordes. [6] La salida del filtro es una suma ponderada de los promedios locales con más peso dados los promedios de regiones más homogéneas.

Véase también

Referencias

  1. ^ Giuseppe Papari, Nicolai Petkov y Patrizio Campisi, Suavizado artístico para realzar bordes y esquinas, IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 16, N.º 10, OCTUBRE DE 2007, páginas 2449–2461
  2. ^ Código fuente de ImageMagick: confirmación 65ed6392f7db81740a6856f7d166c045e89c4764, en MagickCore/effect.c, función "KuwaharaImage()" https://github.com/ImageMagick/ImageMagick/blob/65ed6392f7db81740a6856f7d166c045e89c4764/MagickCore/effect.c#L1756-L1987
  3. ^ M. Kuwahara, K. Hachimura, S. Eiho y M. Kinoshita, "Procesamiento de imágenes angiocardiográficas RI", en Procesamiento digital de imágenes biomédicas, K. Preston Jr. y M. Onoe, editores. Nueva York: Plenum, 1976, págs. 187-202.
  4. ^ H. Al-Marzouqi, Agrupamiento de datos utilizando un filtro Kuwahara modificado, Redes neuronales, 2009. IJCNN 2009. Conferencia conjunta internacional sobre, págs. 128-132, 14-19 de junio de 2009.
  5. ^ Sitio para desarrolladores de CVIPtools: http://cviptools.ece.siue.edu
  6. ^ de JE Kyprianidis, H. Kang, J. y Döllner, 2009, Abstracción de imágenes y vídeos mediante filtrado anisotrópico de Kuwahara. Computer Graphics Forum, 28: 1955–1963.
  7. ^ P. Bakker, L. Van Vliet, P. Verbeek, Filtrado adaptativo de orientación que preserva los bordes, Visión artificial y reconocimiento de patrones, 1999. Conferencia de la IEEE Computer Society sobre.
  8. ^ MA Schulze, JA Pearce, "Una estructura de filtro basada en la morfología para suavizado de mejora de bordes", Procesamiento de imágenes, 1994. Actas. ICIP-94., IEEE International Conference, vol. 2, n.º, págs. 530–534 vol. 2, 13–16 de noviembre de 1994
  9. ^ K. Bartyzel, "Filtro adaptativo Kuwahara", 2015, SIViP 10, págs.

Bibliografía

Enlaces externos