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

1 view (last 30 days)
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?

Answers (1)

Darshak
Darshak on 17 Jun 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):

Categories

Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

Tags

Products


Release

R2015b

Community Treasure Hunt

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

Start Hunting!