Main Content

imgaborfilt

Aplicar un filtro o banco de filtros de Gabor a una imagen 2D

Descripción

ejemplo

[mag,phase] = imgaborfilt(A,wavelength,orientation) calcula la magnitud y la respuesta de fase de un filtro de Gabor para la imagen en escala de grises de entrada A. wavelength describe la longitud de onda en píxeles/ciclo de la portadora sinusoidal. orientation es la orientación del filtro en grados.

[mag,phase] = imgaborfilt(A,wavelength,orientation,Name,Value) aplica un único filtro de Gabor usando argumentos de nombre-valor para controlar los diversos aspectos del filtrado.

ejemplo

[mag,phase] = imgaborfilt(A,gaborbank) aplica el banco de filtros de Gabor, gaborbank, a la imagen de entrada A.

Ejemplos

contraer todo

Lea una imagen en el espacio de trabajo y conviértala a escala de grises.

I = imread('board.tif');
I = im2gray(I);

Aplique un filtro de Gabor a la imagen.

wavelength = 4;
orientation = 90;
[mag,phase] = imgaborfilt(I,wavelength,orientation);

Muestre la imagen original con gráficas de la respuesta de magnitud y fase calculadas mediante el filtro de Gabor.

tiledlayout(1,3)
nexttile
imshow(I)
title('Original Image')
nexttile
imshow(mag,[])
title('Gabor Magnitude')
nexttile
imshow(phase,[])
title('Gabor Phase')

Figure contains 3 axes objects. Axes object 1 with title Original Image contains an object of type image. Axes object 2 with title Gabor Magnitude contains an object of type image. Axes object 3 with title Gabor Phase contains an object of type image.

Lea una imagen en el espacio de trabajo.

I = imread('cameraman.tif');

Cree un arreglo de filtros de Gabor, llamado banco de filtros. Este banco de filtros contiene dos orientaciones y dos longitudes de onda.

gaborArray = gabor([4 8],[0 90]);

Aplique filtros a la imagen de entrada.

gaborMag = imgaborfilt(I,gaborArray);

Muestre los resultados. La figura muestra la respuesta de magnitud para cada filtro.

figure
subplot(2,2,1);
for p = 1:4
    subplot(2,2,p)
    imshow(gaborMag(:,:,p),[]);
    theta = gaborArray(p).Orientation;
    lambda = gaborArray(p).Wavelength;
    title(sprintf('Orientation=%d, Wavelength=%d',theta,lambda));
end

Figure contains 4 axes objects. Axes object 1 with title Orientation=0, Wavelength=4 contains an object of type image. Axes object 2 with title Orientation=0, Wavelength=8 contains an object of type image. Axes object 3 with title Orientation=90, Wavelength=4 contains an object of type image. Axes object 4 with title Orientation=90, Wavelength=8 contains an object of type image.

Argumentos de entrada

contraer todo

Imagen 2D en escala de grises, especificada como matriz numérica.

Longitud de onda de la portadora sinusoidal, especificada como un número mayor o igual que 2, en píxeles/ciclo. Los valores típicos de wavelength oscilan entre 2 y la longitud de la hipotenusa de la imagen de entrada [1].

Orientación del filtro en grados, especificada como escalar numérico en el intervalo [0, 360]. La orientación se define como la dirección normal para la onda plana sinusoidal.

Banco de filtros de Gabor, especificado como objeto gabor o arreglo de objetos gabor.

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.

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

Ejemplo: 'SpatialFrequencyBandwidth',2 especifica un ancho de banda de frecuencia espacial de dos octavas

Ancho de banda de frecuencia espacial, especificado como escalar numérico en unidades de octavas. El ancho de banda de frecuencia espacial determina el corte de la respuesta del filtro cuando el contenido de frecuencia de la imagen de entrada varía con respecto a la frecuencia preferida, 1/lambda. Los valores típicos del ancho de banda de frecuencia espacial están en el intervalo [0,5, 2,5].

Relación entre los ejes semimayor y semimenor de la envolvente gaussiana (semiminor/semimajor), especificada como número positivo. Este argumento controla la elipticidad de la envolvente gaussiana. Los valores típicos de la relación de aspecto espacial están en el intervalo [0,23, 0,92].

Argumentos de salida

contraer todo

Respuesta de magnitud para el filtro o banco de filtros de Gabor, devuelta como matriz numérica para un solo filtro o arreglo numérico para un banco de filtros. El p-ésimo plano de mag es la respuesta de magnitud para el filtro de Gabor del mismo índice, gaborbank(p).

Tipos de datos: double

Respuesta de fase para el filtro o banco de filtros de Gabor, devuelta como matriz numérica para un solo filtro o arreglo numérico para un banco de filtros. El p-ésimo plano de phase es la respuesta de fase para el filtro de Gabor del mismo índice, gaborbank(p).

Tipos de datos: double

Sugerencias

  • Si la imagen contiene valores Inf o NaN, el comportamiento de imgaborfilt es indefinido porque el filtrado de Gabor se realiza en el dominio de la frecuencia.

  • Para todos los tipos de datos de entrada que no sean single, imgaborfilt realiza el cálculo en double. Las imágenes de entrada de tipo single se filtran en tipo single. Pueden obtenerse optimizaciones de rendimiento convirtiendo la imagen de entrada a single antes de llamar a imgaborfilt.

Referencias

[1] Jain, Anil K., and Farshid Farrokhnia. "Unsupervised Texture Segmentation Using Gabor Filters." Pattern Recognition 24, no. 12 (January 1991): 1167–86. https://doi.org/10.1016/0031-3203(91)90143-S.

Capacidades ampliadas

Historial de versiones

Introducido en R2015b