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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

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?

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.

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?

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);

## 0 Comments