How to overlay two colormaps using imagesc command?
57 views (last 30 days)
Show older comments
Taoooooooooooo
on 8 Aug 2019
Answered: Abhilash Padma
on 12 Aug 2019
I want to overlay two colormaps in a single figure. The background image A is an anatomical image and B is the ROI I would like to place on the anatomical image A. Color A was using gray and Color B was using hot. However, when I used the code I attachec below, image A and B became the same size and completely overlayed themselves. I am not sure why this is happening. Please help.
Attached is my code:
ax1 = axes;
colormap(ax1,'gray');
A = imagesc([0,1600],[-130005,10000],fliplr(Image));
%create a mask B with spectral peak values;
ax2 = axes;
colormap(ax2,'hot');
B = imagesc([437.5,962.5],[-73500,-45000],mask); %define the minimal/maximal range of the mask;
set(ax2,'color','none','visible','off');
0 Comments
Accepted Answer
Abhilash Padma
on 12 Aug 2019
The ROI is overlaid completely in your case because the limits of the 2-D axes are not synchronized properly. You can use linkaxes method to synchronize limits of 2-D axes which may solve your problem. Here is the example below:
I=imread('mri.jpg');
mask=rgb2gray(imread('roi.jpg'));
ax1 = axes;
A = imagesc([0,1600],[-130005,10000],I);
ax2 = axes;
B = imagesc([437.5,962.5],[-73500,-45000],mask);
linkaxes([ax1,ax2]);
ax2.Visible = 'off';
ax2.XTick = [];
ax2.YTick = [];
colormap(ax1,'gray');
colormap(ax2,'hot');
set(ax2,'color','none','visible','off');
0 Comments
More Answers (0)
See Also
Categories
Find more on Red in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!