如何在Matlab中混合不同颜色图的颜色

How to mix the color of different colormap in Matlab

我希望重叠区域显示颜色图(热)和颜色图(冷)的混合色。

例如,

contourf(peaks)
colormap(hot)
freezeColors
hold on
contourf(peaks')
colormap(cool)

甚至我调整 alpha 值以调整等高线图的透明度。颜色看起来仍然不像是两种不同颜色图的混合。例如,一个轮廓 1 的环填充蓝色,另一个轮廓 2 的环填充红色。在轮廓1和轮廓2的环重叠区域,我想在轮廓1和轮廓2上都填充紫色(红色+蓝色),非重叠区域仍然保持原始颜色(蓝色或红色)。

大家有什么好主意吗?

提前致谢!!

edit:我刚读了你的编辑,我不知道这个答案是你想要的......我会把它留在这里以防万一。

您正在使用的保留命令只是简单地覆盖了之前的点(此外,颜色图影响全局点,因此无论如何它都不起作用...)。您需要做的是生成一个新的颜色图,它是两个旧颜色图的总和,有点像这样:

 Map1=colormap(hot);
 Map2=colormap(cool);
 CustomMap=Map1/2+Map2/2;
 imshow(ImageWhatever)
 colormap(CustomMap)

希望这就是你想要的!

我找到了解决办法。代码如下所示。

im1=双(峰(300));
im2=双(峰(300)');
im1_rgb=夏天(im1);
im2_rgb=酷(im2);
[x,y] = meshgrid(1:size(im1,2),1:size(im1,1));
数据=im1_rgb/2+im2_rgb/2;
子图 (1,3,1)
tcolor(x,y,数据)
坚持,稍等 [c,h1]=轮廓(x,y,im1);
设置(h1,'LineColor','b')
[c,h2]=轮廓(x,y,im2);
设置(h2,'LineColor','k')
暂缓
子图 (1,3,2)
tcolor(x,y,im1_rgb)
坚持
[c,h1]=轮廓(x,y,im1);
设置(h1,'LineColor','b')
暂缓
子图 (1,3,3)
tcolor(x,y,im2_rgb)
坚持
[c,h2]=轮廓(x,y,im2);
设置(h2,'LineColor','k')
推迟