Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

imguidedfilter

Filtrado guiado de imágenes

Descripción

B = imguidedfilter(A,G) filtra la imagen binaria, en escala de grises o RGB A mediante un filtro guiado por la imagen G. Para obtener más información sobre el filtrado guiado, consulte ¿En qué consiste el filtrado guiado de imágenes?.

ejemplo

B = imguidedfilter(A) filtra la imagen de entrada A bajo autoguiado, utilizando A como imagen guía. Esta sintaxis se puede utilizar para suavizar la imagen A conservando los bordes.

B = imguidedfilter(___,Name,Value) filtra la imagen A utilizando argumentos de nombre-valor para controlar aspectos del filtrado guiado.

Ejemplos

contraer todo

Lea y muestre una imagen.

A = imread('pout.tif');
imshow(A)

Figure contains an axes object. The axes object contains an object of type image.

Suavice la imagen con imguidedfilter. En esta sintaxis, imguidedfilter utiliza la propia imagen como imagen guía.

Iguided = imguidedfilter(A);

A modo de comparación, suavice la imagen original utilizando un filtro gaussiano definido por imgaussfilt. Establezca la desviación estándar del filtro en 2.5 para que el grado de suavizado coincida aproximadamente con el del filtro guiado.

Igaussian = imgaussfilt(A,2);

Muestre el resultado del filtrado guiado y el resultado del filtrado gaussiano. Observe que las regiones planas de las dos imágenes filtradas, como la chaqueta y la cara, tienen cantidades similares de suavizado. Sin embargo, la imagen filtrada guiada conserva mejor la nitidez de los bordes, como alrededor del enrejado y el cuello de la camisa blanca.

montage({Iguided,Igaussian})

Figure contains an axes object. The axes object contains an object of type image.

Argumentos de entrada

contraer todo

Imagen que se desea filtrar, especificada como imagen binaria, en escala de grises o RGB.

Tipos de datos: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Imagen guía, especificada como imagen binaria, en escala de grises o RGB de la misma altura y anchura que la imagen A.

La imagen guía puede ser la misma imagen de entrada, una versión distinta de la imagen de entrada o una imagen completamente diferente. La imagen de salida es, localmente, una transformación lineal de la imagen guía, donde la función optimiza las ponderaciones de la transformación lineal para minimizar el error entre las imágenes de entrada y salida. Para obtener más información sobre las aplicaciones del filtrado guiado de imágenes utilizando diferentes imágenes guía, consulte Perform Flash/No-flash Denoising with Guided Filter y Segment Thermographic Image After Edge-Preserving Filtering.

Tipos de datos: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

Ejemplo: Ismooth = imguidedfilter(A,NeighborhoodSize=[4 4]); realiza un filtrado guiado utilizando un entorno de un tamaño de 4 por 4 píxeles.

En las versiones anteriores a la R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: Ismooth = imguidedfilter(A,"NeighborhoodSize",[4 4]);

Tamaño del entorno rectangular alrededor de cada píxel utilizado en el filtrado guiado, especificado como número entero positivo o vector de dos elementos de números enteros positivos. Si se especifica un valor escalar, como Q, entonces el entorno es un cuadrado de tamaño [Q Q]. No especifique un valor mayor que el tamaño de la imagen.

Ejemplo: NeighborhoodSize=[7 7]

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Cantidad de suavizado en la imagen de salida, especificada como número positivo. Si se especifica un valor pequeño, solo se suavizarán los entornos con una varianza pequeña (áreas uniformes) y no los entornos con una varianza más grande (como alrededor de los bordes). Si se especifica un valor mayor, los entornos de alta varianza, como los bordes más fuertes, se suavizarán además de los entornos relativamente uniformes. Comience con el valor predeterminado, verifique los resultados y ajuste el valor predeterminado hacia arriba o hacia abajo para lograr el efecto que desea.

Si especifica una imagen guía G, el valor predeterminado de DegreeOfSmoothing depende del tipo de datos de G y se calcula como 0.01*diff(getrangefromclass(G)).^2. Por ejemplo, el grado de suavizado predeterminado es 650.25 para imágenes con tipo de datos uint8 y de 0.01 para imágenes con tipo de datos double con valores de píxeles en el intervalo [0, 1]. Si no se especifica una imagen guía, el valor predeterminado depende del tipo de datos de la imagen A.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

contraer todo

Imagen filtrada, devuelta como arreglo numérico del mismo tamaño y tipo de datos que A

Sugerencias

  • El argumento DegreeOfSmoothing especifica un umbral flexible de varianza para el entorno dado. Si el entorno de un píxel tiene una varianza mucho más baja que el umbral, se verá cierta cantidad de suavizado. Si el entorno de un píxel tiene una varianza mucho más alta que el umbral, tendrá poco o ningún suavizado.

  • Las imágenes de entrada A y G pueden ser de diferentes clases. Si A o G son de clase entera o lógica, imguidedfilter las convierte a precisión de coma flotante para el cálculo interno.

  • Las imágenes de entrada A y G pueden tener un número diferente de canales.

    • Si tanto A como G son imágenes RGB, imguidedfilter filtra cada canal de A de forma independiente usando el canal correspondiente de G.

    • Si A es una imagen RGB y G es una imagen de un solo canal, imguidedfilter filtra cada canal de A de forma independiente utilizando la misma imagen guía, G.

    • Si A es una imagen de un solo canal y G es una imagen RGB, imguidedfilter filtra A utilizando las estadísticas de color combinadas de los tres canales de G.

Referencias

[1] Kaiming He, Jian Sun, Xiaoou Tang. Guided Image Filtering. IEEE® Transactions on Pattern Analysis and Machine Intelligence, Volume 35, Issue 6, pp. 1397-1409, June 2013.

Capacidades ampliadas

Historial de versiones

Introducido en R2014a

expandir todo