How to find the coordinates of detected pores(white blobs) in a fingerprint?
古いコメントを表示
I am doing a project under fingerprint recognition,I have extracted pores(white blobs) in a fingerprint image.How can I store the location of these pores(or the coordinate points) so that I can apply this information and match two fingerprints and calculate the %match. I am attaching snapshot of the extracted pores here.

回答 (1 件)
Image Analyst
2015 年 4 月 28 日
0 投票
You can store the locations to disk using save().
For matching this set of coordinates to the set of coordinates from a different fingerprint image, there is nothing built in to MATLAB for that. It's a field that people have been working on for several decades and, as you can imagine, the algorithms have evolved to a quite complicated state by now. Nonetheless research is still being done and you can find published fingerprint algorithms here: http://www.visionbib.com/bibliography/contentspeople.html#Face%20Recognition,%20Detection,%20Tracking,%20Gesture%20Recognition,%20Fingerprints,%20Biometrics.
Pick an algorithm listed there, and code it up in MATLAB. You'll have to do it yourself because, unless it's in the File Exchange which is unlikely, then that's the only way you'll get it, unless you can persuade the author to send you code.
13 件のコメント
researcher
2015 年 4 月 28 日
Image Analyst
2015 年 4 月 28 日
For example:
storedStructure = load(fullMatFileName);
x = storedStructure.x;
y = storedStructure.y;
researcher
2015 年 4 月 28 日
Image Analyst
2015 年 4 月 28 日
It's the name of the file that you used when you called save() to store your x and y coordinates.
storedStructure does not identify encircled blobs of course. You need to do that. One you know the x and y coordinates of the blob centroids, you can then store the x and y coordinates in a mat file and you can use rectangle() to put up little circles over the image at the centroid locations.
researcher
2015 年 4 月 28 日
Image Analyst
2015 年 4 月 28 日
They're the measurements(k).Centroid values. You can get all in one shot like this
centroids = [measurements.Centroid];
xCentroids = centroids(1:2:end);
yCentroids = centroids(2:2:end);
researcher
2015 年 4 月 28 日
Image Analyst
2015 年 4 月 28 日
researcher, you said "How can I store the location of these pores(or the coordinate points) so that I can apply this information..." So, the obvious plan of attack is to save the information first , so that you can then apply it later. Don't you agree? So then why are you calling load() to recall the x and y values BEFORE you even saved them????????? Does that make sense to you? Obviously you can't recall them until they've been saved. And if you do everything in the same program, why do you even need to save or recall them at all?
By the way, why did you use '-ASCII' option? Don't do that - just let it use the proprietary binary format.
researcher
2015 年 4 月 29 日
Image Analyst
2015 年 4 月 29 日
xCentroids = blobCentroid(1:2:end);
yCentroids = blobCentroid(2:2:end);
x = storedStructure.xCentroids;
y = storedStructure.yCentroids;
save('mysave.mat', 'x','y','-ASCII');
researcher
2015 年 4 月 29 日
Image Analyst
2015 年 4 月 29 日
What do you want to call the centroids of all the points? And are you going to try to read them in always, even in this program, or just in some other program that you run later? We need to figure out if you need to load, save, or both in this program.
researcher
2015 年 4 月 29 日
カテゴリ
ヘルプ センター および File Exchange で Programming についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!