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.

gabor

Crear un filtro de Gabor o un banco de filtros de Gabor

Descripción

Un objeto gabor representa un filtro de Gabor lineal sensible a texturas con una longitud de onda y una orientación especificadas.

Puede utilizar la función gabor para crear un único filtro de Gabor o un banco de filtros de Gabor. Un banco de filtros es un conjunto de filtros que representa combinaciones de varias longitudes de onda, orientaciones y otros parámetros opcionales. Por ejemplo, si especifica dos longitudes de onda y tres orientaciones, el banco de filtros de Gabor constará de seis filtros para cada combinación de longitud de onda y orientación.

Para aplicar un filtro de Gabor o un banco de filtros de Gabor a una imagen, utilice la función imgaborfilt.

Creación

Descripción

g = gabor(Wavelength,Orientation) crea un filtro de Gabor y establece las propiedades Wavelength y Orientation con la longitud de onda y la orientación del filtro.

Si especifica Wavelength u Orientation como vectores, la función gabor crea un arreglo de objetos gabor que contiene todas las combinaciones únicas de Wavelength y Orientation.

ejemplo

g = gabor(Wavelength,Orientation,Name,Value) también utiliza argumentos nombre-valor para establecer una o ambas de las propiedades SpatialFrequencyBandwidth y SpatialAspectRatio. Puede especificar varios argumentos nombre-valor. Encierre el nombre de cada propiedad entre comillas.

Si especifica SpatialFrequencyBandwidth o SpatialAspectRatio como vectores, la función gabor crea un arreglo de objetos gabor que representa todas las combinaciones de los valores de los argumentos de entrada.

Ejemplo: gabor(wavelength,orientation,"SpatialFrequencyBandwidth",2) crea un filtro de Gabor con un ancho de banda de frecuencia espacial de dos octavas.

Propiedades

expandir todo

Longitud de onda de la portadora sinusoidal, especificada como escalar numérico o vector numérico con valores mayores o iguales a 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].

No se puede modificar la propiedad Wavelength después de crear el objeto gabor.

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

Si le interesa solo la respuesta de magnitud de Gabor, restrinja el intervalo de Orientation a [0, 180].

No se puede modificar la propiedad Orientation después de crear el objeto gabor.

Ancho de banda de frecuencia espacial en unidades de octava, especificado como número positivo o vector de números positivos. 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].

No se puede modificar la propiedad SpatialFrequencyBandwidth después de crear el objeto gabor.

Relación entre los ejes semimayor y semimenor de la envolvente gaussiana (semiminor/semimajor), especificada como número positivo o vector de números positivos. Esta propiedad 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].

No se puede modificar la propiedad SpatialAspectRatio después de crear el objeto gabor.

Esta propiedad o parámetro es de solo lectura.

Núcleo espacial, especificado como matriz numérica.

Ejemplos

contraer todo

Cree una imagen de muestra de un damero.

A = checkerboard(20);

Cree un arreglo de filtros de Gabor.

wavelength = 20;
orientation = [0 45 90 135];
g = gabor(wavelength,orientation);

Aplique los filtros a la imagen del damero.

outMag = imgaborfilt(A,g);

Muestre los resultados.

outSize = size(outMag);
outMag = reshape(outMag,[outSize(1:2),1,outSize(3)]);
figure, montage(outMag,'DisplayRange',[]);
title('Montage of gabor magnitude output images.');

Cree un arreglo de filtros de Gabor.

g = gabor([5 10],[0 90]);

Visualice la parte real del núcleo de convolución espacial de cada filtro de Gabor del arreglo.

figure;
subplot(2,2,1)
for p = 1:length(g)
    subplot(2,2,p);
    imshow(real(g(p).SpatialKernel),[]);
    lambda = g(p).Wavelength;
    theta  = g(p).Orientation;
    title(sprintf('Re[h(x,y)], \\lambda = %d, \\theta = %d',lambda,theta));
end

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.

Historial de versiones

Introducido en R2015b