Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

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:
1.png
Then, the normalized image is defined by:
2.png

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
3.png

o Then, I estimate the local orientation for each bloc using the following equations:
4.png
5.png

o Then, I chose the filter parameter
6.png
And get the Gabor filter using an OpenCV function:
7.png
o Finally, I apply the kernel to the bloc using another OpenCV function:
8.png

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

16x16 blocs - 31x31 blocs
11.png 12.png

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.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top