Matlab built-in image() and imagesc() do not straightforwardly allow one to overlay one image over another in different colors (i.e., different colormaps). These utilities provide a rudimentary way to do so by suitably scaling and augmenting the image data and the active colormap.
>> colormap bone
>> hold on
>> imagesc(mask,'ColorMap',[0.5 0 0.5],'AlphaData',0.5*(mask>0))
plots mask over dists>8 with a colormap that runs smoothly from white to purple.
There are a few options for the colormap:
- any of the MATLAB builtins, passed either as a string ('jet') or an array (jet(64))
- any Nx3 array
- a single color, in which case the colormap is expanded to run from white to that color
I placed imagesc.m and @double in my working directory. I'm not sure if that's the most effective choice and I haven't tested other locations.
Please be in touch with any requests or issues. A more discursive description is available at http://www.blopig.com/blog/?p=3634
Editing to note that the release note for 2.1 should have read 'colorbars' not 'colormaps'. The FP routine is necessary for the other functions but the result is not actively used.
v2.1 fixes a bug and updates a floating point routine. The floating-point routine is related only to my ambition to implement colormaps at some future time.
v1.0 implements overlay() and remove_overlay()