Direction on enhancing fingerprints
Show older comments
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
on 26 Mar 2014
0 votes
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
Zebiba Nurbegen
on 24 Aug 2018
Edited: Image Analyst
on 24 Aug 2018
My question similar to above, however I am try to use your link:
It does not work.
Image Analyst
on 24 Aug 2018
It does work. I just tried it again. Click it again to try it.
Liam
on 26 Mar 2014
0 votes
Categories
Find more on Image Filtering and Enhancement in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!