2

我有一个与这篇文章中的问题类似的问题。

我有一个灰度图像,并在其上绘制点。从绘制我使用的点,colormap('jet')但由于我希望图像是灰度的,在绘制点后我重置了颜色图,colormap('gray').

但我想显示一个彩条!并且颜色条以灰度绘制,而不是“喷射”。我怎样才能做到这一点?

编辑: 我想要一个显示点颜色的颜色条!

在此处输入图像描述

4

2 回答 2

5

您应该通过将相同的数据放入 R 通道、G 通道和 B 通道(这将是灰度 RGB 图像)来将图像转换为 RGB。MatLab 中的颜色图不适用于 RGB 图像,仅适用于索引图像。然后用你喜欢的颜色图在图像上绘制你的点。

于 2013-04-15T08:00:41.227 回答
2

正如这里所讨论的,有几种方法:

  1. 如果您有图像处理工具箱,请使用subimage创建具有单独颜色图的独立图像。然后绘制图像、您的点,并使用linkaxes.

  2. 使用文件交换中的freezeColors(或多个 colormaps,我从未亲自测试过)。这是一种创建更大颜色图并自动选择颜色图的正确部分以显示图像和颜色条的非常简单的方法。

  3. 正如 anandr 所回答的,将您的灰度图像转换为 RGB;Matlab 不在 RGB 图像上使用颜色图,这使您可以自由地绘制点并显示独立于图像的颜色条。

(3) 的示例代码:

I = imread('cameraman.tif');
imshow(cat(3,I,I,I))

hold on

x = @() round(size(I,1) * rand(50,1));
y = @() round(size(I,2) * rand(50,1));

plot(x(), y(), 'r.')
plot(x(), y(), 'g.')
plot(x(), y(), 'b.')

colormap('jet')
colorbar

结果:

带有点和颜色条的图片

于 2013-04-15T08:11:47.487 回答