I need to overlay a color map over a gray scale image with with the colorbar on the side.

75 vues (au cours des 30 derniers jours)
I know there are similar post but I was unable to get them working. Attached is one matfile which contains 2 variables. I would like the colormap (Tmap) overlayed on a gray-scaled imaged on the variable 'x'. I also need all the zeroes not to show and and a colorbar shown on the side. Thanks for the assistance. You can see what I tried to do to get it working. Thanks for the help.
figure; imagesc(Tmap); colormap(jet); colorbar;
mask=Tmap>0;
figure; imshow(mask);
overlayImage=gray2ind(double(Tmap)/max(Tmap(:)),128);
overlayRGB=ind2rgb(overlayImage,jet(128));
x=im2double(x);
x=gray2ind(double(x)/max(x(:)),128);
vvv=[37 45]; %Set the colorbar axis
h=subimage(x);
set(h,'AlphaData',mask);
imagesc(Tmap);colormap(jet);colorbar; caxis(vvv);
hold on;
h=subimage(x);
set(h,'AlphaData',~mask)
h=gcf;
saveas(h,'NiceTherm')

Réponse acceptée

Teja Muppirala
Teja Muppirala le 20 Déc 2017
Something like this maybe?
figure;
ax1 = axes;
imagesc(x);
colormap(ax1,'gray');
ax2 = axes;
imagesc(ax2,Tmap,'alphadata',Tmap>0);
colormap(ax2,'jet');
caxis(ax2,[min(nonzeros(Tmap)) max(nonzeros(Tmap))]);
ax2.Visible = 'off';
linkprop([ax1 ax2],'Position');
colorbar;
  3 commentaires
Chris
Chris le 20 Déc 2017
I have confirmed this works on matlab 2017 but won't work on 2012. Thanks for your help!
M J
M J le 26 Août 2019
Thank you, this works for me!
However, I fail to do this in a subplot. Can you help me with this?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Blue dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by