File Exchange

image thumbnail

Iris segmentation using Daugman's integrodifferential operator

version 1.2 (8.81 KB) by

This program takes as input the image of the iris f human eye and localises the iris and pupil by fi

21 Ratings



View License

This collection of M-files takes as input a close-up image of the human iris and returns as output the original image overlaid with circles corresponding to the pupil and iris boundaries. In addition, it returns the centre and radius coordinates of both boundaries in the variables ci and cp.Notes on the use of the function(s) are included in the .txt files. All the functions have to be on the search path for the code to work.
Unfortunately, I wrote this a long time ago (2007) and no longer have the time to support it. You are of course free to extend and reuse this if it helps you.

Comments and Ratings (45)

Rajat Babel

please tell how we have to give input in the function drawcircle
thanks a lot

ahmed am

dear sir
i do not understand how can run this code for detect iris , please help me in understand this or to how i run this code to detect iris and extract iris from pupil.
best wishes

How to launch this ? How to input an eye image ? Anyone please explain step by step. Urgent here.

Alfio Rezika

well i've got it. thanks.

Alfio Rezika


Jouda (view profile)

Can anyone help me on the basics and how to use the code?

tnx for code.but i have problem. I'm working on feret DB. what rmin and rmax I should use??
 please help me,

anya viswa

Could anyone please suggest how to calculate rmin,rmax automatically?.It is like trial and error method to detect accurate rmin and rmax values.

@Yannick Mermet can you please help me out on how to apply the code? Thanks

Really helpful for my project thanks.
Just wondering but is there a way to make the rmin and rmax adapt automatically before each run of the algorithm?


Hello, please help I don't understand the function each time I tried to run the program it gives me errors that function is invalid in the code and (I,C,r,n) that I should terminate with a code. Here is the code:
K = imread('brown eye.jpg);
I = rgb2gray(K);
r = 150;
C = int32([200 300 150]);
function [0] = drawcircle(I,C,r,n);
margin =3
Please tell me what I'm missing in this code. Thanks alot


majd (view profile)

Salemou 3laikom
 I still confused to determine Rmin, Rmax, coordinate of center point, and number of side.
the size is exceed, how can i fix this??
I work with CASIA Iris-Syntetic V4, image dimensions is 640*480 (widht*hight)
how to calculate rminiris and rmaxiris ( the minimum and maximum values) of the iris radius.
Can you help me and thank you very much

will a digital camera work to capture the image or should i get CCD camera ? if its a CCD camera that i should get can anyone specify a brand ?/ model ?


SMRITI (view profile)

can anyone tell me from where to start pupil localization...actually i want some basic

joy barbosa

oh sorry~! it should be Alexandre Willame! :))) thnx Alex!

joy barbosa

works great! thanks Anirudh Sivaraman
for sharing.. big thnx to you too Rajasekhar Reddy for the suggestions. it also helps me in making the execution faster by altering the imgsize, rmin & rmax values w/ a proper scaling factor!


Is iris image and ordinary image taken from a digi cam me frndzz..

Please help me.I'm implementing code by Libor Masek. I'm not getting correct boundaries for iris and pupil.I'm confused which values I've to use for lower&upper values for iris and pupil radius and lower &upper threshold values for hysterisis thresholding to mark edges.My input image is eye image(CASIA)is of 300*400 size.I'm using hough transform to find circles.I'm using lower&upper radius values for iris 28,75 and for pupil 8,15 respectively.Lower&upper threshold values 0.19&0.20 resp.Scaling factor 0.3.


C (view profile)

For those who have problems using it, here is an example of how to launch it (eye.jpg is a 480x360 image of an eye):

[ci,cp,out] = thresh(eye,50,400);

Nag Arjun

how to run this code?


lila (view profile)

 how to run this code??
i cant run it((((


JUAN (view profile)

can anyone help me about the procedure to call the function,
this is what I am running:
[ci,cp,O] = umbral (I,rmin,rmax);

can anyone help me about the input values, what must be given ?


ayush (view profile)

Can u please explain how to run this code??
Ps give an example...

still confused to determine Rmin, Rmax, coordinate of center point, and number of side.. Plzz tell me! :'(
at search.m :
radius = maxrad(X,Y)
the size is exceed,, how can i fix this??
i work withh CASIA Iris-V4


MISSY (view profile)

doesn't work...


samai (view profile)

it works great !! for those who uses CAsia interval or CASIA Iris-V3 you must to fix the min and the max Radius [95 150] respectively, and to apply the Enhace histog Equalization "histeq.m"
but if you use the Casia1 it works by fixing on [95 105] without histeq.
I've some prblm with the Classification step if someone could help I'll apreciate (wich method or Algorithm i should use to extract the features ..!!).
Good luck.


maram (view profile)

someone mail me plz!


maram (view profile)

can you help me plz how to use this code?

Alex Chuah

i have tried this m-files by using the CASIA iris database (version 1) and it works fine. But then when i run it by using CASIA interval iris database, it not really works well. Can i know how to solve this issue??

Joanna Yahya

please people help me,I implement the code iris recognition for libor masek and I got an error coding project.
I put the image file(001_1_1.bmp) in same directory with createiristemplate.m when i call this function
there was an error Error: File: createiristemplate.m Line: 21 Column: 47
Unexpected MATLAB expression.
I also already changed all the eyeimage_filename in createiristemplate to
('001_1_1.bmp'), but theres still error.
can you help me please and tell me what is are the steps i have to do to run the codes?

Raymond Cheng

Thanks for your sharing. Perfect!


Can u give some more details abt this...

Tincu Oana

i did change the scale and the min iradius and max iradius as anand said but i received an error on line 46 "index exceeds matrix dimensions" and i don't know how to fix it ...can anybody help me pls

anand kumar

works perfect ! gr8 !
There is a little problem, the scale factor have to be 0.25 for correct estimation ( also It makes it fast by 10 times ! ) and the min iradius = 95 and max iris radius = 105.
thnx Anirudh.
It will be nice if u can give me code to unwrapp the image and remove the noise from unwrapped image .
thnx again

lani karmila

I have tried your program with CASIA database, but I fail to get correct boundary iris and pupil. Can you help me to explain your program

Tina Clair

Can u plz upload any image using this operator? I am trying to run it, but I think I'm not giving the correct rmin n rmax values, on the CASIA (version1) database. Guideline needed to run it, soon please.

Hozefa Pat

Can u give more details on how to use this code ??

akrout belhassen



Updated to say that I don't have the time to support it.


Added mail ID


Added mail address to address questions on the code.

Addition of a file to tell users to review the code

MATLAB Release
MATLAB 6.1 (R12.1)

Inspired: Fast Eyetracking

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

» Watch video