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

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

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

Asked by Antonio 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

2 Answers

Answer by Andrew Davis 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
Answer by Image Analyst 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 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 on 6 Feb 2013

Then just save ContornoMask

imwrite(ContornoMask , theFullFileName);
Image Analyst

Contact us