How to overlay two colormaps using imagesc command?

조회 수: 15 (최근 30일)
Taoooooooooooo
Taoooooooooooo 2019년 8월 8일
답변: Abhilash Padma 2019년 8월 12일
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');

채택된 답변

Abhilash Padma
Abhilash Padma 2019년 8월 12일
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개)

카테고리

Help CenterFile Exchange에서 Color and Styling에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by