Gabor filter for fingerprints enhancement

Status
Not open for further replies.

AeonJo

Newbie level 1
Joined
Feb 26, 2016
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
12
Hello everyone

I'm working on a project for fingerprints recognition and I'm actually trying to code the Gabor filter but I'm encountering many problems though I'm applying the exact formula of the filter!!
I don't know what's the problem.
I start by normalizing the image (mean = 0 and variance = 1)
Then I calculate the local orientation of each pixel. I use Sobel algorithm to calculate the gradient. I found that some use another filter (Gaussian filter mostly) for the orientation matrix. Why?
Then I apply the Gabor formula and use the openCV function 'filter2D' for the convolution
But the results are not what I expect

Help please!! :?::?:
 

Hi AeonJo,
A Gabor filter is sin modulated with gaussian and it works with rotation i means orientation and frenquency and other parameters..I suggest to you to download simply Gabor filter toolbox from web..you can find easly this tool ...well, i think using sobel is best way to generate edge
 

Hello everyone

So... I'm working on this project about minutia extraction and detection for fingerprints recognition. But first I have to apply the Gabor filter to the fingerprints to enhance it, remove the noise in the image. And I’m getting unexpected results though I programmed the exact Gabor filter that I could find on the internet and which is used by almost all persons working with fingerprints since I’s the most effective filter.
Note that I am programming with C++ and OpenCV
Here’s what I did:
- First I normalize the fingerprint image
if I is the gray-level fingerprint image, defined as a N x N matrix, and I( i, j) the intensity of the pixel at the ith row and jth column The mean and the variance of the image is defined as:

Then, the normalized image is defined by:


Where M0 and VAR0 are the desired mean and variance values, respectively.
Here, I chose M0 = 0 and Var0 = 1
- For the Gabor filter
o The image is divided into W x W blocs
o For each bloc, I compute the gradients Gx and Gy at each pixel using the Sobel function of OpenCV


o Then, I estimate the local orientation for each bloc using the following equations:



o Then, I chose the filter parameter

And get the Gabor filter using an OpenCV function:

o Finally, I apply the kernel to the bloc using another OpenCV function:


That’s it.
As I said before the result are so different from expected.
The original image - the normalized image


16x16 blocs - 31x31 blocs


I’m also supposed to calculate the local ridge frequency, but I wasn’t able to understand the algorithm, I found it pretty hard.
Moreover, in most works I’ve read about the local ridge orientation, they don’t stop at the results I got for the orientation but apply another filter or something. Complicated.
And I think I have a problem with the blocs size…

Help please!!:!::!:
And if anyone has worked with the gabor filter for fingerprints enhancement, could you please explain how you did that??!
I’ve been working on this for more than a month now :/. And, it’s the first time I work on image processing and everything related to it so I'm still learning.:bang:

P.S. I worked with Raymond Thai equations
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…