Version (14.5 KB) by Jack
Overlay one greyscale image in colour atop another, e.g. for medical imaging, simply.
Updated 20 Aug 2017

Often, one wants to overlay one image on top of another in Matlab. This is inevitably needlessly difficult. do_Overlay is a script that takes at a minimum two arguments: im_underlay, and im_overlay. These have to have the same in-plane size (i.e. size(im_underlay,1)==size(im_overlay,1); size(im_underlay,2)==size(im_overlay,2)). The result is a colour image of overlay superimposed on underlay, with scalings, opacities, etc dealt with appropriately according to your colormap of choice.
The overlay (colour) image can have a third dimension, which is assumed to be 'time'. A movie would then be made (with pause statements between each frame to allow for slow video writing). The colour axis is normalised to the max over all time. This is typically used for producing movies of, e.g. contrast agents flashing through a medical imaging reference scan.

Options are parsed as a struct with a set of sensible defaults, and can contain:
hfig -- figure handle for overlay window
hax -- axis handle (blank is fine)
do_normslice = 1 -- normalise each slice
orient =1 -- change to rotate
overlay_flag = 'abs' -- function to call on overlayed data
cmap = 'jet' -- overlay colour scheme
bgnd_bright = 0.6 -- brightness of the background [underlay]
gamma_background = 0.5 -- gamma adjustment of the background
fov_x = 1 -- adjust to crop
fov_y = 1 -- adjust to crop
zoomFactor = 1.5 -- size of resulting window
cutBottom = 0.45 -- bottom of the colour axis (below which is
cutTop = 1 -- top of the colour axis (above which is red)
saveVideo = false -- set to true to save a video
videoName = a unique string -- filename
overlayString -- text to write on each video frame
An example (with somewhat pointless data from the image processing toolbox):

underlay = imread('cameraman.tif'); %256x256 greyscale image of a man with a camera
overlay = imread('circles.png'); %256x256 binary image of circles
overlay = imfilter(double(overlay),fspecial('gaussian',8,20)); %Blur circles
do_Overlay(underlay, overlay);
%256x256 RGB image of a man with a camera in B&W with an overlaid set of discs:

Cite As

Jack (2024). NeutralKaon/do_Overlay (, GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2015a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Display Image in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes

Updated documentation

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.