MATLAB Answers

How to merge between an image object and a surface object?

1 view (last 30 days)
Stanislav Steinberg
Stanislav Steinberg on 24 Jan 2019
Given an array of images of some size N,
I display an image from that array using imshow():
I = imshow(ImgArr(n))
Next, I create a surface overlay that displays a heatmap:
H = surface(x,y,v)
Now I have two objects: I is the Image object and H is the surface object.
I want to merge between I and H and get an array of merged images that can be displayed using the function montage().
End result should look like this for example (minus the white spaces...) .
Capture.PNG Capture.PNG Capture.PNG
Capture.PNG Capture.PNG Capture.PNG
Any tips on how to do this?
Note: I want to avoid saving anything to the hard disk except perhaps the final montage.

Answers (1)

Stanislav Steinberg
Stanislav Steinberg on 28 Jan 2019
The solution I came up with thus far (may not be the most elegant):
for/while loop
% open a new frame
frame = figure('Visible','off');
% draw whatever it is you draw here
% save frame data into an array
q = getframe(frame);
ImgArray(:,:,:,k) = q.cdata;
fig = figure('Visible', 'on');
montage(ImgArray, 'Size', [num_of_rows num_of_cols]);
Will gladly accept better solutions.

Community Treasure Hunt

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

Start Hunting!