Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

How to save an image with an overlay mask applied to it?

Asked by Antonio

Antonio (view profile)

on 3 Feb 2013

Consider the following code

    I = imread('pout.tif'); 
    figure, imshow(I);
    h = imfreehand (gca, 'Closed',false);
    wait(h);
    maskColor = getColor(h);
    bwMask = createMask(h);
    ContornoMask = imdilate(bwMask, true(3)) & ~imerode(bwMask, true(3));
    imshow(I, [], 'Colormap', gray(256)); 
    OverlayMask =alphamask(ContornoMask, maskColor, 0.5); %% how do I save the image with the overlay mask applied? 

I don't understand why OverlayMask is a scalar value instead of a logical matrix.

I want to save the image generated by alphamask (<http://www.mathworks.com/matlabcentral/fileexchange/34936-alphamask-semi-transparent-image-overlay>) as a new image matrix. How can I do this?

0 Comments

Antonio

Antonio (view profile)

2 Answers

Answer by Andrew Davis

Andrew Davis (view profile)

on 6 Feb 2013
Accepted answer

Alphamask is a display tool. Your 'OverlayMask' variable is a scalar because alphamask returns a handle to the graphic. If you wanted the logical matrix, you already have it as 'ContornoMask', right?

To save the image with the mask applied, I recommend saveas:

saveas(OverlayMask, 'imagefile', 'jpg')

Or, in general, gcf can be used as a handle to the figure if you like:

saveas(gcf, 'imagefile', 'jpg')

Of course you may choose different file formats including Matlab's 'fig'. If you find alphamask useful, please leave a rating on the file exchange page.

0 Comments

Andrew Davis

Andrew Davis (view profile)

Answer by Image Analyst

Image Analyst (view profile)

on 4 Feb 2013

How about saving OverlayMask (which is generated by the alphamask program) with imwrite:

imwrite(OverlayMask, theFullFileName);

Isn't this what you asked?

2 Comments

Andrew Davis

Andrew Davis (view profile)

on 6 Feb 2013

Unfortunately imwrite will not work in this case because OverlayMask is just a scalar value (representing the graphic handle).

Image Analyst

Image Analyst (view profile)

on 6 Feb 2013

Then just save ContornoMask

imwrite(ContornoMask , theFullFileName);
Image Analyst

Image Analyst (view profile)

Contact us