I have a image in which i have to draw a circle over it,i have to draw circles in many places in the image ,please tell how to procees,i saw a code in matlab central it draws only one circle ,but how to draw many circles on a image manually ,i have to click on image and have to draw circlehttp://www.mathworks.com/matlabcentral/fileexchange/23121-circle-on-imagei edited from above link but the thing is that i have to draw many circle on one image ,please tell where i have to write hold on command codewhere k is my image function [] = circle_saptha(k)ok = 0;while ok~=1 % figure;
imshow(k); pt = ginput(2) x1 = pt(1,1); y1 = pt(1,2); x2 = pt(2,1); y2 = pt(2,2); xpt = [x1 x2]; ypt = [y1 y2]; %line(x,y); % Enablw this for draw rectangle on circle
r = sqrt((x2-x1)^2 + (y2-y1)^2) pp=rsmak('circle',r,[x1 y1]); % figure; % imshow(k)
fnplt(pp); line(xpt,ypt); xtl = x1-r; xtr = x1+r; xbl = x1-r; xbr = x1+r; ytl = y1+r; ytr = y1+r; ybl = y1-r; ybr = y1-r; x = [xtl xtr xbr xbl xtl]; y = [ytl ytr ybr ybl ytl]; %line(x,y);
for i=1:size(k,1) for j=1:size(k,2) x2 = j; y2 = i; val = floor(sqrt((x2-x1)^2 + (y2-y1)^2)); if(val == floor(r)) nim(i,j,1) = 255; nim(i,j,2) = 0; nim(i,j,3) = 0; else nim(i,j,1) = k(i,j,1); nim(i,j,2) = k(i,j,2); nim(i,j,3) = k(i,j,3); end end end imshow(nim); ok = (menu('Do u want to draw another circle?','No','Yes')==1) imshow(nim); end end
MATLAB: Were to introduce hold on command
circle
Best Answer