i am new to matlab that the error is coming like that Error using segmentiris (line 18) Not enough input arguments.please send me answers how to fix the error
1 view (last 30 days)
Show older comments
tic radial_res=150; angular_res=900; for i=1; for j=1; eyeimage_filename= [num2str(2) '\' num2str(i) '\' num2str(j) '.jpg']; eyeimage1 =imread(eyeimage_filename); savefile=[num2str(2)'\' num2str(i)'\' num2str(j)'-houghpara.m']; [circleiris circlepupil segimage] = segmentiris(eyeimage1); save('savefile','circleiris','circlepupil','segimage');
%write noise image
segimage2=uint8(segimage);
imagewithcircles=uint8(eyeimage1);
%get pixel coords for circle around iris
[x,y] = circlecoords([circleiris(2),circleiris(1)],circleiris(3),size(eyeimage1));
ind1=sub2ind(size(eyeimage1),double(y),double(x));
%get pixel coords for circle around pupil
[xp,yp] = circlecoords([circlepupil(2),circlepupil(1)],circlepupil(3),size(eyeimage1));
ind2=sub2ind(size(eyeimage1),double(yp),double(xp));
%write circles overlayed
imagewithcircles(ind2)=255;
imagewithcircles(ind1)=255;
imwrite(imagewithcircles,[num2str(2)'\' num2str(i)'\' num2str(j) '-segmented.jpg'],'jpg');
figure(1)
imshow(imagewithcircles,[])
pause
%perform normalisation
[polar_array] = normaliseiris(segimage, circleiris(2),...
circleiris(1), circleiris(3), circlepupil(2), circlepupil(1), circlepupil(3),eyeimage1, radial_res, angular_res);
%write normalised pattern and noise pattern
imwrite(polar_array,[num2str(2) '\' num2str(i)'\' num2str(j)'-polar.jpg'],'jpg'); figure(2) imshow(polar-array,[]) pause h=imcrop(polar_array,[2.91935483870968 897.58064516129 90.3225806451613]); imwrite(h,[num2str(2) '\' num2str(i)'\' num2str(j)'-cropimage.jpg'],'jpg'); figure(3) imshow(h,[]) pause polar=histeq(h); f=fspecial('gaussian'); polar=imfilter(polar,f);
imwrite(polar,[num2str(2) '\' num2str(i)'\' num2str(j)'-finalimage.jpg'],'jpg');
figure(4)
imshow(polar,[])
pause
end
end
toc
d=toc
function [circleiris, circlepupil, segimage]= segmentiris(eyeimage)
%define range of pupil & iris radii
%ubiris
lpupilradius = 5;
upupilradius = 20;
lirisradius = 30;
uirisradius = 60;
% define scaling factor to speed up Hough transform scaling = 0.4;
reflecthres = 240;
% find the iris boundary [row, col, r] = findcircle(eyeimage, 30,60, 0.4, 2, 0.31, 0.30, 1.00, 1.00);
circleiris = [row col r];
rowd = double(row); cold = double(col); rd = double(r);
irl = round(rowd-rd); iru = round(rowd+rd); icl = round(cold-rd); icu = round(cold+rd);
imgsize = size(eyeimage);
if irl < 1 irl = 1; end
if icl < 1 icl = 1; end
if iru > imgsize(1) iru = imgsize(1); end
if icu > imgsize(2) icu = imgsize(2); end
% to find the inner pupil, use just the region within the previously % detected iris boundary imagepupil = eyeimage( irl:iru,icl:icu);
%find pupil boundary [rowp, colp, r] = findcircle(imagepupil, 5,20 ,0.6,2,0.25,0.25,1.00,1.00);
rowp = double(rowp); colp = double(colp); r = double(r);
row = double(irl) + rowp; col = double(icl) + colp;
row = round(row); col = round(col);
circlepupil = [row col r];
% set up array for recording noise regions % noise pixels will have NaN values % imagewithnoise = double(eyeimage);
%find top eyelid topeyelid = imagepupil(1:(rowp-r),:); lines = findline(topeyelid);
if size(lines,1) > 0 [xl yl] = linecoords(lines, size(topeyelid)); yl = double(yl) + irl-1; xl = double(xl) + icl-1;
yla = max(yl);
y2 = 1:yla;
% ind3 = sub2ind(size(eyeimage),yl,xl); % imagewithnoise(ind3) = NaN;
% imagewithnoise(y2, xl) = NaN; end
%find bottom eyelid bottomeyelid = imagepupil((rowp+r):size(imagepupil,1),:); lines = findline(bottomeyelid);
if size(lines,1) > 0
[xl yl] = linecoords(lines, size(bottomeyelid));
yl = double(yl)+ irl+rowp+r-2;
xl = double(xl) + icl-1;
yla = min(yl);
y2 = yla:size(eyeimage,1);
% ind4 = sub2ind(size(eyeimage),yl,xl); % imagewithnoise(ind4) = NaN; % imagewithnoise(y2, xl) = NaN; % end
% %For CASIA, eliminate eyelashes by thresholding % ref = eyeimage < 100; % coords = find(ref==1); % imagewithnoise(coords) = NaN;
0 Comments
Answers (0)
See Also
Categories
Find more on Line Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!