Direction on enhancing fingerprints

Hi, As my fyp i am developing a fingerprint recognition system which I had to develop over three months as i am doing an 1 year intesive software development course. I have the majority of the project completed as i have performed pre processing, minutiae extraction, false minutiae removal, minutiae orientation extraction, translation, rotation and matching. A sample run of the program can be seen below.
However, what is lacking in my project is image enhancement. At the moment my project only works correctly with high quality images and depending on the rotation, the results of thinning vary. Below is a high quality image followed by the same image rotated outside of matlab form comparison. Even though it is the same image the results are very different and bad in the second image. The second image is before false minutiae removal but even after removing most of these the results aren't great.
I have downloaded source code for fast fourier transform to determine if it would help this problem before i actually invested time in implementing it and the results were of no benefit. Histogram equalization also doesn't help. So basically my question is, what is the best way to go about enhancing these images so that i can get a consistently high quality image before minutiae extraction? I have studied various articles on the subject but with only three months experience in image processing and matlab they all go a bit over my head. As this project is only four months in duration i am not dealing with extremely bad images so any tips on enhancing them a bit would be great. My preprocessing code is below, the fillsmallholes method in the centre of the code is just to fill any tiny holes after thinning and i then thin the image again to remove the filled holes.
if true
d = im2bw(a,0.8);
preprocessed = bwmorph(~d,'thin','inf');
preprocessed = fillSmallHoles(preprocessed);
preprocessed = bwmorph(preprocessed,'thin','inf');
preprocessed = bwareaopen(preprocessed,5);
preprocessed = bwmorph(preprocessed,'spur',5);
end
below is an example of the quality of fingerprints i am getting from the scanner.

Answers (2)

Image Analyst
Image Analyst on 26 Mar 2014
Certainly corrupted/degraded fingerprints can be a challenging problem. There have been companies working on this for years. In fact I interviewed at one for a job back in the '80s. There are papers on it that you can look up here: http://iris.usc.edu/Vision-Notes/bibliography/contentspeople.html#Face%20Recognition,%20Detection,%20Tracking,%20Gesture%20Recognition,%20Fingerprints,%20Biometrics in section 21.6. Of course they are complicated and I can't look them up and code them up for you but see if any sound interesting then order the papers through your school and try to program them up.

2 Comments

It does work. I just tried it again. Click it again to try it.

Sign in to comment.

Liam
Liam on 26 Mar 2014
Thanks for the help image analyst, I don't mind the complexity I just wanted to make sure I was investing time understanding an approach that would be effective with the images I am using to make the most efficient use of the time I have left. This looks like a great resource though. Thanks very much.

Asked:

on 26 Mar 2014

Commented:

on 24 Aug 2018

Community Treasure Hunt

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

Start Hunting!