关于一个轴上的多个图像,颜色条处理的问题

8次浏览(过去30天)
你好,谢谢你阅读本文。
我为此苦恼了一段时间,我已经在一定程度上取得了成功。我要做的是创建一个带有两个imagesc图的单轴图,每个imagesc都有色条。我现在能做的是将两个融合的imagesc数据集绘制为一个数据集,我可以绘制两个imagesc并保持,我可以使用NaN值的索引将一张图像填充到另一张图像中(我的数据集包括一个躯干,一个NaN腔用于肺,另一个用于肺)。我把它们都画在一个坐标轴上。
注意,我想分开绘制这些数据,因为躯干和肺有苹果和橙色的数据集。唯一一致的信息是像素的x,y,z空间位置。
就像我之前说的,我可以在一个轴上很好地覆盖两张图像。我的问题来自于无法为两个融合的图像制作两个色条。
是否有可能使彩色条数据的imagesc使用像素的空间方向,加上cdata?我已经试着看了一些演示,但我创建融合图像的方式使多个色条变得困难。
谢谢你给的任何建议。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2015年5月6日
您是否考虑过使用文件贡献 freezeColors ?
也就是说,有一些方法可以将相对缩放的数据(例如输入到imagesc()的数据)转换为绝对数据。
参见Colormap / Colorbar Utilities 文件的贡献
1评论
布莱恩
布莱恩 2015年5月6日
谢谢,我会看看的。这似乎是最接近的了,可能是最接近的了,不过我得有创意一点。

登录评论。

更多答案(1)

图像分析
图像分析 2015年5月6日
我要做的是将每个索引/灰度图像与右侧的灰色斜坡进行缝合。(我假设你知道如何用linspace()和repmat()制作斜坡-如果你不知道,请告诉我)。然后对第二张图片做同样的操作。然后使用ind2rgb()将这两张图像转换为rgb图像。
image1 = [image1, verticalRamp];
Colormap1 = jet(256);任何你想要的颜色。
Rgb1 = ind2rgb(image1, colormap1);
image2 = [image2, verticalRamp];
Colormap2 = hsv(256);任何你想要的颜色。
Rgb2 = ind2rgb(image2, colormap2);
然后把它们缝在一起
rgbPair = [rgb1, rgb2];
imshow (rgbPair);
如果你想要沿着斜坡的强度标签,那么使用text()。

类别

了解更多Colormaps帮助中心而且文件交换

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!