Use insertInImage to embed, or burn, any text or graphics item into an image. You can specify, using a cell array of parameter-value pairs (PVs), or using a structure, any valid properties of the specified object to insert.
The new version works in R2016a +, and is much improved. It now takes cell arrays of function handles (and PV pairs), so avoids multiple calls to insertInImage. Additionally, the new version no longer necessitates the visualization of a temporary figure for screen capture!
In versions prior to R16a, the function may work (back to R2014b), but may resize the image and insert a background region that will require cropping.
SYNTAX: IMGOUT = insertInImage(IMGIN,INSERTIONCOMMAND,PVs)
BASEIMAGE: an image, or a handle to an image (or parent object containing an image), in which the object is to be embedded. (The image need not be displayed, unless a handle is provided.)
INSERTIONCOMMAND: text, rectangle, line, ellipse, etc. to embed in the image. Internally, insertInImage calls FEVAL; anything that works inside an feval command will workhere. For example, you can insert the string 'TESTING' at [x,y] = [20,30] using feval( @() text('TESTING',20,30]), so the insertionCommand for this would be:
@() rectangle('position',[x y w h])
PVs (OPTIONAL): Cell array or structure of any parameter-value pairs valid for the TYPE of object you wish to insert.(Note that this _may_ include a 'position' parameter, which will overwrite any position set with the insertion command. For example, when you insert a string, PVs can be any Parameter-Value pairs valid for TEXT objects. (See 'Text Properties' for details.)
IMGOUT: output RGB image of the same class as imgin, with embedded text or graphic item(s).
(Thet lines, text, and circles are burned in the image herewith.)