why can't it find the Iris Boundaries
Show older comments
Hi there Im trying to localise the iris boundaries using the file here: http://www.mathworks.com/matlabcentral/fileexchange/15652-iris-segmentation-using-daugman-s-integrodifferential-operator
Before i apply the algorithm above, I use the following code to Localize and fill in the Reflections in the image:
function [eyeClose] = findReflections(eye, r, c);
%Since Images are already greyscale, no need to convert them.
%Average Intensity Value of image
iAve = mean2(eye);
%*Maximum Intensity Value of image calculated*%
%Gets the 0.04% of the Total amount of pixels in the image
iMaxS = r*c*0.04;
%Sort the values in descending order
[sortedValues,sortIndex] = sort(eye(:),'descend');
%Get a linear index into Eye image of the iMaxS largest values
highValues = sortedValues(1:iMaxS);
%Fixed amount of Brighest Pixels averaged
iMaxB = mean(highValues);
%P (fixed proportion) is between 0 to 1
%After trial and error 0.8 seems to gather the best of the reflections in
%the Iris
P = 0.6;
%Intensity Threshold
tRef = iAve + P*(iMaxB-iAve)
indicies = uint8(double(eye<=tRef));
eyeTref = eye.*indicies;
out = eyeTref; % Initialize
%creates a nonflat, ball-shaped structuring element (actually an ellipsoid)
%whose radius in the X-Y plane is R and whose height is H.
se = strel('ball',5,50);
%Dilation Operator
eyeMorph = imdilate(eyeTref,se);
out(~indicies) = eyeMorph(~indicies); % Replace specular reflections with dilated.
% %Closure Operator
eyeMorph2 = imclose(out,se);
eyeClose = eyeMorph2;
any help would be grateful. Here is the image of the eye
Answers (0)
Categories
Find more on QSP, PKPD, and Systems Biology in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!