El filtro Kuwahara es un filtro de suavizado no lineal utilizado en el procesamiento de imágenes para la reducción adaptativa de ruido. La mayoría de los filtros empleados para ...
Hispanopedia WikiContenido en espanolLectura gratuita
El filtro Kuwahara es un filtro de suavizado no lineal utilizado en el procesamiento de imágenes para la reducción adaptativa de ruido. La mayoría de los filtros empleados para el suavizado de imágenes son filtros lineales de paso bajo que reducen eficazmente el ruido, pero también difuminan los bordes. Sin embargo, el filtro Kuwahara es capaz de suavizar la imagen preservando los bordes.
El filtro Kuwahara modificado para imágenes en color reduce eficazmente el ruido sin difuminar los bordes.
Recibe su nombre en honor a Michiyoshi Kuwahara, doctor en filosofía, quien trabajó en las universidades de Kyoto y Osaka Sangyo en Japón , desarrollando las primeras técnicas de imagen médica del músculo cardíaco dinámico en las décadas de 1970 y 1980.
El operador de Kuwahara
Ventana utilizada por un filtro Kuwahara. Está dividida en 4 regiones cuadradas a, b, c, d, donde los píxeles ubicados en la fila y columna centrales pertenecen a más de una región.
Supongamos quees una imagen en escala de grises y tomamos una ventana cuadrada de tamañocentrado en un puntoen la imagen. Este cuadrado se puede dividir en cuatro regiones cuadradas más pequeñas.cada uno de los cuales será [ 1 ]
dóndees 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.
La media aritméticay desviación estándarSe calculan 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 de Kuwaharapor cualquier puntoentonces se da pordónde.
El comportamiento del filtro de Kuwahara para 2 casos.El efecto de aplicar un filtro Kuwahara a una imagen original (arriba a la izquierda) utilizando ventanas de 5, 9 y 15 píxeles.
Esto significa que el píxel central tomará el valor medio de la zona más homogénea. La posición del píxel con respecto a un borde influye considerablemente en la determinación de la región con mayor desviación estándar. Por ejemplo, si el píxel se encuentra en el lado oscuro de un borde, probablemente tomará el valor medio de la región oscura. Por otro lado, si el píxel se encuentra en el lado claro de un borde, probablemente tomará un valor claro . Si el píxel se encuentra en el borde, tomará el valor de la región más suave y con menor textura. El hecho de que el filtro tenga en cuenta la homogeneidad de las regiones garantiza que se conserven los bordes, mientras que el uso de la media crea el efecto de desenfoque.
De forma similar al filtro de mediana , el filtro Kuwahara utiliza una 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 generar imágenes más abstractas, mientras que las ventanas pequeñas producen imágenes que conservan sus detalles. Normalmente, las ventanas se eligen cuadradas con lados de un número impar de píxeles para mantener la simetría. Sin embargo, existen variaciones del filtro Kuwahara que utilizan ventanas rectangulares. Además, las subregiones no necesitan superponerse ni tener el mismo tamaño, siempre que cubran toda la ventana.
Imágenes en color
Para imágenes en color, no se debe aplicar el filtro a cada canal RGB por separado y luego recombinar los tres canales filtrados para formar la imagen RGB resultante. El principal problema es que los cuadrantes tendrán desviaciones estándar diferentes para cada canal. Por ejemplo, el cuadrante superior izquierdo podría tener la desviación estándar más baja en el canal rojo, mientras que el cuadrante inferior derecho podría tenerla en el canal verde. Esta situación provocaría que el color del píxel central dependiera de diferentes regiones, lo que podría generar artefactos de color o bordes borrosos.
Para superar este problema, en el caso de 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 opera entonces únicamente sobre el canal de "brillo", la coordenada de Valor en el modelo HSV. Se calcula la varianza del "brillo" de cada cuadrante para determinar de qué cuadrante 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 con la menor desviación estándar en "brillo". Esto garantiza que solo una región determinará los valores RGB del píxel central.
Utilizando estadísticasusando 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(I, tamaño_de_ventana)Aplica el filtro Kuwahara a una imagen `I`, utilizando una ventana cuadrada de tamaño `window_size`."""función kuwahara ( I , tamaño_de_ventana )# Convierte la imagen a un espacio de color HSV# (necesario para funcionar con imágenes en color)hsv = HSV . ( I )# Obtiene el valor de brillo como values[y, x]valores = channelview ( float . ( hsv ))[ 3 , : , : ]# Para Rec.601 Luma, reemplace las dos líneas anteriores con:# valores = Gray.(I)# Crea una imagen vacía con las mismas dimensiones que la entrada.imagen_resultante = similar ( I )# El tamaño de cada cuadrante de la ventanatamaño_cuadrante = Int ( ceil ( tamaño_ventana / 2 ))# (y, x) bucle sobre la imagen originalpara 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_ventana ÷ 2 )tl_y = y - ( tamaño_ventana ÷ 2 )# Función que mantiene un número entre 1 y el tamaño de la imagen.# (Asegura que todas las posiciones que estamos utilizando sean válidas)c1 ( i ) = map ( j -> clamp ( j , 1 , size ( values , 1 )), i )c2 ( i ) = map ( j -> clamp ( j , 1 , size ( values , 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 )finfindevolver la imagen resultantefin# Código de prueba con una imagen de ejemplourl = "https://upload.wikimedia.org/wikipedia/commons/7/73/Lion_waiting_in_Namibia.jpg"descargar ( url , "lion.jpg" )img = cargar ( "lion.jpg" )tamaño_de_ventana = 13resultado = kuwahara ( img , tamaño_ventana )guardar ( "resultado.png" , resultado )
Aplicaciones
El filtro Kuwahara se utiliza para crear un efecto pictórico en una imagen.
Originalmente, el filtro Kuwahara se propuso para su uso en el procesamiento de imágenes angiocardiográficas de RI del sistema cardiovascular. [ 3 ] El hecho de que se conserven los bordes al suavizarlo lo hace especialmente útil para la extracción de características y la segmentación, y explica por qué se utiliza en imágenes médicas .
El filtro Kuwahara también encuentra numerosas aplicaciones en la imagen artística y la fotografía artística gracias a su capacidad para eliminar texturas y perfilar los bordes de las fotografías. El nivel de abstracción contribuye a crear un efecto pictórico deseable en las fotografías artísticas, especialmente en la versión a color del filtro. Estas aplicaciones han tenido un gran éxito y han impulsado investigaciones similares en el campo del procesamiento de imágenes para las artes.
Aunque la gran mayoría de las aplicaciones se han dado en el campo del procesamiento de imágenes, ha habido casos que utilizan modificaciones del filtro de Kuwahara para tareas de aprendizaje automático como la agrupación. [ 4 ]
El filtro Kuwahara se ha implementado en CVIPtools . [ 5 ]
A pesar de sus capacidades para preservar los bordes, el filtro Kuwahara presenta ciertos inconvenientes.
A primera vista, se observa que el filtro Kuwahara no tiene en cuenta el caso en que dos regiones tengan desviaciones estándar iguales. Esto no suele ocurrir 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 que dos regiones tienen desviaciones estándar similares, el valor del píxel central podría ser determinado aleatoriamente 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 maneras de abordar este problema, una de las cuales es establecer el valor del píxel central enen los casos en que la desviación estándar de dos regiones no difiere más que un cierto valor.
En la imagen de la derecha se aprecian los artefactos de bloqueo que aparecen al utilizar el filtro Kuwahara.El filtro Kuwahara también es conocido por crear artefactos de bloques en las imágenes, especialmente en regiones con mucha textura. Estos bloques alteran la suavidad de la imagen y se considera que tienen un efecto negativo en su estética. Este fenómeno se produce debido a la división de la ventana en regiones cuadradas. Una forma de superar este efecto es utilizar ventanas no rectangulares (por ejemplo, circulares) y dividirlas en regiones menos rectangulares. También existen enfoques en los que el filtro adapta su ventana según la imagen de entrada. [ 7 ]
Extensiones del filtro Kuwahara
El éxito del filtro Kuwahara ha impulsado el desarrollo de filtros de suavizado para realzar los bordes. Se han propuesto varias variantes para usos similares, la mayoría de las cuales intentan solucionar las limitaciones del filtro Kuwahara original.
El filtro de Kuwahara generalizado propuesto por P. Bakker [ 8 ] 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 mayor confianza. Este filtro no presenta la misma ambigüedad en presencia de ruido y logra eliminar los artefactos de bloqueo.
El filtro "Media de menor varianza" (MLV), propuesto por MA Schulze [ 9 ] también produce resultados de suavizado que realzan los bordes en las imágenes. De manera similar al filtro Kuwahara, asume una ventana de tamañopero en lugar de buscar entre cuatro subregiones de tamañopara el que tiene la varianza mínima busca entre todos los posiblessubregiones. Esto significa que al píxel central de la ventana se le asignará la media de una subregión de entre un total de posibles subregiones.que tiene la menor varianza.
El filtro "Adaptative Kuwahara", propuesto por K. Bartyzel, [ 10 ] 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 redimensionamiento de la ventana del filtro, la media y la varianza del área básica adoptará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 hasta que se alcance el tamaño máximo de ventana permitido. Finalmente, se comparan las varianzas de las cuatro áreas, y el valor del píxel de salida es el valor promedio del área básica con la varianza más pequeña.
JE Kyprianidis también propuso un intento más reciente de suavizado con realce de bordes. [ 7 ] La salida del filtro es una suma ponderada de los promedios locales, donde se otorga mayor peso a los promedios de las regiones más homogéneas.
↑ Giuseppe Papari, Nicolai Petkov y Patrizio Campisi, Artistic Edge and Corner Enhancing Smoothing , IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 16, NO. 10, OCTUBRE DE 2007, páginas 2449–2461
↑ Código fuente de ImageMagick: commit 65ed6392f7db81740a6856f7d166c045e89c4764, en MagickCore/effect.c, función "KuwaharaImage()" https://github.com/ImageMagick/ImageMagick/blob/65ed6392f7db81740a6856f7d166c045e89c4764/MagickCore/effect.c#L1756-L1987
↑ M. Kuwahara, K. Hachimura, S. Eiho y M. Kinoshita, " Procesamiento de imágenes angiocardiográficas de RI ", en Procesamiento digital de imágenes biomédicas, K. Preston Jr. y M. Onoe, editores. Nueva York: Plenum, 1976. págs. 187–202.
↑ H. Al-Marzouqi, Agrupación de datos mediante un filtro Kuwahara modificado , Redes neuronales, 2009. IJCNN 2009. Conferencia Internacional Conjunta sobre, págs. 128–132, 14–19 de junio de 2009.
↑ Sitio web para desarrolladores de CVIPtools: http://cviptools.ece.siue.edu
↑ "Nodo Kuwahara - Manual de Blender 5.1" . docs.blender.org . Consultado el 24 de mayo de 2026 .
1 2 JE Kyprianidis, H. Kang, J. y Döllner, 2009, Abstracción de imágenes y vídeo mediante filtrado Kuwahara anisotrópico . Computer Graphics Forum, 28: 1955–1963.
↑ P. Bakker, L. Van Vliet, P. Verbeek, Filtrado adaptativo de orientación que preserva los bordes , Visión por computadora y reconocimiento de patrones, 1999. Conferencia de la IEEE Computer Society sobre.
↑ MA Schulze, JA Pearce, " Una estructura de filtro basada en morfología para suavizado de mejora de bordes ", Procesamiento de imágenes, 1994. Actas. ICIP-94., Conferencia Internacional IEEE, vol. 2, n.º, págs. 530–534 vol. 2, 13–16 de noviembre de 1994
Umbaugh, Scott E. (noviembre de 2011). Procesamiento y análisis de imágenes digitales: aplicaciones de visión humana y computacional con CVIPtools, segunda edición . CRC Press . ISBN978-1-4398-0205-2.
Enlaces externos
Página principal de Visión Avanzada
Código Matlab de Kuwahara en Mathworks
Applet Java Kuwahara del Departamento de Ciencias de la Computación e Ingeniería de la HKUST