Code covered by the BSD License  

Highlights from
Miura et al. vein extraction methods


5.0 | 2 ratings Rate this file 40 Downloads (last 30 days) File Size: 6.91 KB File ID: #35716
image thumbnail

Miura et al. vein extraction methods



19 Mar 2012 (Updated )

Two vein extraction methods as described by Miura et al. for finger vein authentication.

| Watch this File

File Information

Maximum curvature:
This method will try to extract the centre lines of the veins. This is done by calculating local maximum curvatures in cross-sectional profiles of a vein image. The method is supposed to be robust against varying vein widths and non-uniform brightness.

Repeated line tracking:
This algorithm will start at several random points and will try to track a line. If a pixel has been visited by the line tracking algorithm multiple times it is likely to be a vein. A movie showing the algorithm in action can be found here:
 - N. Miura, A. Nagasaka, and T. Miyatake "Feature extraction of finger vein patterns based on repeated line tracking and its application to personal identification" Machine Vision and Applications.
doi: 10.1007/s00138-004-0149-2
 - N. Miura, A. Nagasaka, and T. Miyatake "Extraction of finger-vein patterns using maximum curvature points in image profiles." IAPR conference on machine vision applications 9 (2005).

The file "miura_usage.m" gives an impression of how to use the feature extraction methods. Finger region localisation can be found here:

Please leave a comment, if you like it, find a bug, or know (made) good improvements to the code.

MATLAB release MATLAB 7.13 (R2011b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (11)
15 Apr 2014 vivekanandastudents

Sir,i want to ask that which are all the features you are extracting from the image

24 Oct 2013 Arya

I got the following error while trying this code. The error is with max_curvature function.Reapeted line tracking is working properly. As am new to matlab i could not troubleshoot the error. Please help me
??? Subscripted assignment dimension mismatch.

Error in ==> miura_max_curvature at 54
k(:,:,1) = (fxx./((1 + fx.^2).^(3/2))).*fvr; % hor

Error in ==> miura_usage at 15
v_max_curvature = miura_max_curvature(img,fvr,sigma);

11 Dec 2012 Smart

Thx a lot
can u explain how can i calculate FAR and FRR plz

03 Jul 2012 Mohamed

Dear Dr. Bram Ton,

would I ask you for an implementation for this simple and efficient paper for vein extraction

I already sent the paper to your e-mail account

thank you very much for your help and support

11 Jun 2012 Bram Ton

@Adem Trey & Bo
I have added an updated 'miura_usage.m' script, which should be foolproof now ;)

08 Jun 2012 bo

Hello, Bram Ton:
I am a new beginner to study vein extract. Thanks you for the great work. miura usage is our main function or not?
I have download your code, when I am trying to run your code, here the error information:
??? Undefined function or method 'finger_region' for input arguments of
type 'double'.

Error in ==> miura_usage at 11
fvr = finger_region(img,'mask',40); % Get finger region
when I try to modify to the function finger_region to lee_region. then I got the following information:
??? Error using ==> zeros
Leading inputs must be numeric.

Error in ==> lee_region at 36
mask = zeros(mask_h,mask_w);

Error in ==> miura_usage at 10
fvr = lee_region(img,'mask',40); % Get finger region
I am wondering May I get help from you to send me send me an correct version of your code.Here is my email:

10 May 2012 Adam Trey

Is finger_region() the same as lee_region()?

I got an error when I run miura_usage.m

Error in ==> miura_usage at 11
fvr = lee_region(img,'mask',40); % Get finger region

??? Error using ==> zeros
Leading inputs must be numeric.

Error in ==> lee_region at 37
mask = zeros(mask_h,mask_w);

And, what about the full binarize() function? Thanks.

08 May 2012 Bram Ton

Miura et al. his paper is not clear about the binarisation method. I have used binarisation based on the median value with good results:
md = median(img(img>0));
BW = img > md;

02 May 2012 nourul

what about binarize function? Thanks.

21 Mar 2012 Bram Ton

Please see my recently submitted work:

21 Mar 2012 Suhan Shetty

cannot find fingerregion function.Please pass it.Thanks a ton.

21 Mar 2012

Added link to finger region localization.

11 Jun 2012

Updated the 'miura_usage.m' script to make it foolproof.

06 Nov 2012

Added link to movie showing the repeated line tracking algorithm in action.

Contact us