MATLAB Answers


how to save the image

Asked by FIR
on 14 Feb 2013

I have the folowing code ,plz tell how to save the circled image

k is my image

function [x1 y1 r ] = circle_saptha4(k)
ok = 0;
nim = k;
while ok~=1
  % figure;
  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)
    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];
    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
    ok = (menu('Do u want to draw another circle?','No','Yes')==1)
%     hold on




No products are associated with this question.

3 Answers

Answer by Image Analyst
on 16 Feb 2013
 Accepted answer

Why not use rectangle() to draw the circles into the overlay, then use export_fig (from the File Exchange) to save the image with the circles written into the image?


Answer by Thorsten
on 14 Feb 2013
 imwrite(nim, 'newimage.png');


Walter Roberson
on 16 Feb 2013

You didn't answer my first question

Are you saying that the entire output image consists of (255,255,255) RGB triples ?

Also I notice that your outputs are x1, y1, r, but not nim, and that you do not display nim ?

on 18 Feb 2013

i have imshow(nim) so image is displayed ,by calling this function,i dont know what u mean by RGB triples

Walter Roberson
on 18 Feb 2013

Why do you change nim after you display it?

Why do you return x1 y1 only for the newest circle, instead of for all circles? You never even displayed that newest circle on the drawing.

What is your reason for saying "I did it but it writes only 256" ? What writes only 256 ?

Answer by dsfds
on 14 May 2013
Edited by dsfds
on 14 May 2013

wanna know how to how to save images to different formats in c#

check here


Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!