How are Gabor’s 2D filters used in iris recognicion

8 visualizaciones (últimos 30 días)
Emilia Badescu
Emilia Badescu el 27 de En. de 2020
Respondida: Darshak el 17 de Jun. de 2025
Hello! I am working on an iris recognition system, and I don`t know how I can realize a feature encoding or extraction. How are Gabor’s 2D filters used? Can you help me with a code exemple, please? It is possible to use for this problem Fuzzy k-Means Clustering?

Respuestas (1)

Darshak
Darshak el 17 de Jun. de 2025
Working on feature extraction for an iris recognition system, using 2D Gabor filters is a solid choice. They are well-suited for capturing local frequency and orientation information present in iris textures. MATLAB provides built-in support for these filters and combining them with clustering methods like Fuzzy k-Means can help in encoding or grouping the extracted features.
The following approach can be used to get started:
  • Begin with a pre-processed (grayscale and normalized) iris image. If normalization is not yet implemented, it is helpful to investigate Daugman's rubber sheet model to map the circular iris region to a rectangular format.
  • Use the gabor function to define the filter parameters like wavelength and orientation. Gabor filters can emphasize texture orientations, which is useful for iris patterns.
  • Apply the filter using imgaborfilt to generate the feature response. This output can then be vectorized and used for further processing.
  • For clustering, fcm x can assign degrees of membership for each feature vector. This can be helpful if you're looking for a soft clustering approach to encode the iris feature space.
Here is a simple illustration that can be build on:
irisImage = imread('iris_sample.jpg');
if size(irisImage, 3) == 3
irisImage = rgb2gray(irisImage);
end
gaborArray = gabor(4, 0); % wavelength = 4, orientation = 0
gaborMag = imgaborfilt(irisImage, gaborArray);
featureVector = double(gaborMag(:));
[centers, U] = fcm(featureVector, 3); % 3 clusters (can be adjusted)
[~, maxU] = max(U);
clusteredImage = reshape(maxU, size(gaborMag));
imshow(clusteredImage, []);
This can be expanded by applying a full bank of Gabor filters across multiple orientations and scales.
You can refer to the following relevant MATLAB documentation for further details on the functions mentioned:
Gabor Filter Design (gabor):
Apply Gabor Filters to Images (imgaborfilt):
Fuzzy C-Means Clustering (fcm):
Convert RGB to Grayscale (rgb2gray):
Read Image File (imread):

Categorías

Más información sobre Statistics and Machine Learning Toolbox en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2015b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by