Code covered by the BSD License  

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Miura et al. vein extraction methods

4.6
4.6 | 10 ratings Rate this file 10 Downloads (last 30 days) File Size: 6.91 KB File ID: #35716 Version: 1.4
image thumbnail

Miura et al. vein extraction methods

by

Bram Ton (view profile)

 

19 Mar 2012 (Updated )

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

| Watch this File

File Information
Description

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:
https://vimeo.com/51757793
 
Literature:
 - 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).

Usage:
The file "miura_usage.m" gives an impression of how to use the feature extraction methods. Finger region localisation can be found here:
http://www.mathworks.in/matlabcentral/fileexchange/35752-finger-region-localisation

Comments:
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 (22)
16 Jun 2016 Roya Roshani

Hi
I got this error msg. Could you please assist/
??? Error using ==> plus
Matrix dimensions must agree.

Error in ==> lee_usage at 13
edge_img(edges(1,:) + size(img,1)*[0:size(img,2)-1]) = 1;

Comment only
07 Jun 2016 lekshmi radhakrishnan

i can't under stand the repeated line tracking function.
what you mean by locus point here.
i can't under stand the locus point matrix.
my email id is:
lakshmirada94@gmail.com

05 Jun 2016 ROSE

ROSE (view profile)

i can't understand the miura_max_curvature function working.
i go through base paper ' extraction of finger-vein patterns using maximum curvature point in image profile by miura' and understand that this function was implemented the equations in that paper. please explain the basics of the equations here used.

21 Apr 2016 Serj Abramov

I have of implementation of this method in c++. I can sell it.
Here is my email: serj@doctor.com

Comment only
28 Jan 2016 ismot ara

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

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

Plz sir tell me how i will solve it....

May I get help from you to send me send me an correct version of your code.Here is my email:
preetycse07@yahoo.com

28 Jan 2016 ismot ara

Dear sir When i use im2double() to run then the file cannot run. but when i use im2bw() then the file can run.. but pattern is not visible... Now what can i do.. how i run this file using im2double(); i cant understand what i will do... Sir plz urgent

19 Oct 2015 ismot ara

Dear Sir
In miura_usage.m line 18, 19
md = median(v_max_curvature(v_max_curvature>0));
v_max_curvature_bin = v_max_curvature > md;

How can I execute these binarise code in miura_max_curvature.m file. please inform me...

19 Oct 2015 ismot ara  
19 Oct 2015 ismot ara

Dear Sir
In miura_usage.m line 18, 19
md = median(v_max_curvature(v_max_curvature>0));
v_max_curvature_bin = v_max_curvature > md;

How can I execute these binarise code in miura_max_curvature.m file. please inform me...

18 Oct 2015 ismot ara

Dear Sir,
I am novice in matlab. So when i run miura_max_cuvature file then face several problems. But i dont understand the problems. it says parameter argument sigma,img, fvr undefined How to define these parameter. Please help me. I need to know in badly.....

08 Apr 2015 Naidile sidduswamy

sir,
in miura_max_curvature function, could you pls tell me how you got this formula
f1 = 0.5*sqrt(2)*(fx + fy)?

Comment only
15 Apr 2014 vivekanandastudents

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

Comment only
24 Oct 2013 Arya

Arya (view profile)

Sir,
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);

Comment only
11 Dec 2012 Smart

Smart (view profile)

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

Comment only
03 Jul 2012 Mohamed

Dear Dr. Bram Ton,

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

http://www.sciencedirect.com/science/article/pii/S0167865512000748

I already sent the paper to your e-mail account

thank you very much for your help and support

11 Jun 2012 Bram Ton

Bram Ton (view profile)

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

Comment only
08 Jun 2012 bo

bo (view profile)

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:
bo.zhang-1@ou.edu

Comment only
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

Bram Ton (view profile)

@Nourul
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;

Comment only
02 May 2012 nourul

nourul (view profile)

what about binarize function? Thanks.

Comment only
21 Mar 2012 Bram Ton

Bram Ton (view profile)

@Suhan:
Please see my recently submitted work:
http://www.mathworks.in/matlabcentral/fileexchange/35752-finger-region-localization

Comment only
21 Mar 2012 Suhan Shetty

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

Comment only
Updates
21 Mar 2012 1.1

Added link to finger region localization.

11 Jun 2012 1.3

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

06 Nov 2012 1.4

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

Contact us