📄 index.html
字号:
<html><head><title>Example of fingerprint enhancement</title></head><body bgcolor="#ffffff" vlink="#ff0000"><h2>Example of fingerprint enhancement</h2><p> This code loosely follows the approach presented by <br>Hong, L., Wan, Y., and Jain, A. K. 'Fingerprint image enhancement:Algorithm and performance evaluation'. IEEE Transactions on PatternAnalysis and Machine Intelligence 20, 8 (1998), pp 777-789.<p>Ridge regions in the image are identified and normalised, ridgeorientations are determined, local ridge frequencies calculated, andthen contextual filters with the appropriate orientation and frequencyare applied.<hr><center><a href=finger.png><img src=fingersm.png></a><p>finger.png</center><pre> im = imread('finger.png'); % Identify ridge-like regions and normalise image blksze = 16; thresh = 0.1; [normim, mask] = ridgesegment(im, blksze, thresh); show(normim,1); % Determine ridge orientations [orientim, reliability] = ridgeorient(normim, 1, 5, 5); plotridgeorient(orientim, 20, im, 2) show(reliability,6)</pre><center><table><tr><td align='center'><img src=orientsm.png><p>Orientations overlaid<td align='center'><img src=reliasm.png><p>'Reliability' of orientations</table</center><pre> % Determine ridge frequency values across the image blksze = 36; [freq, medfreq] = ridgefreq(normim, mask, orientim, blksze, 5, 5, 15); show(freq,3) </pre><center><img src=freqsm.png><p>Frequency data</center><pre> % Actually I find the median frequency value used across the whole % fingerprint gives a more satisfactory result... freq = medfreq.*mask; % Now apply filters to enhance the ridge pattern newim = ridgefilter(normim, orientim, freq, 0.5, 0.5, 1); show(newim,4);</pre><center><img src=newimsm.png><p>Filtered image</center><pre> % Binarise, ridge/valley threshold is 0 binim = newim > 0; show(binim,5);</pre><center><img src=binimsm.png><p>Binary image</center><pre> % Display binary image for where the mask values are one and where % the orientation reliability is greater than 0.5 show(binim.*mask.*(reliability>0.5), 7)</pre></pre><center><table><tr><td align='center'><img src=finalsm.png><p>Masked binary image<td align='center'><img src=fingersm.png><p>Original image</table></center><p>It would probably be sensible to apply a morphological closing tothe (reliability > 0.5) masking image so that small 'holes' in thereliability data (which often occur at minutiae points) are removed.<p>Download this <a href=testfin.m>code example</a><p>I leave it to you to thin the binary image and then try to pick out the valid minutiae...</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -