0

编辑

我有一个grayscale包含 的像素值的图像300,我手动将其分配给具有特定标准的像素。

情况是图像中的其他值是12。所以,我现在将有三个值:12300

为了以有意义的方式显示图像,我们可以使用thresholding. 因此,这与具有值1和的像素一样2。对于具有 value 的像素300,我如何为其分配一些颜色以便能够将其与图像的其他部分区分开来。

谢谢。

4

2 回答 2

1

如果您拥有的所有值都是1,2,300那么一个简单的颜色图将解决这个问题。诀窍是分配值3而不是300这样可以使用颜色图的线性映射(1,2,3),例如,如果您的 imagesc 被调用im

im(im==300)=3;

cmap=[0.2 0.2 0.2; ...
      0.4 0.4 0.4; ...
      1   0   0  ];

colormap(cmap);
imagesc(im);

在这里,我创建了一个 3 色颜色图,其中包含 3 个值的颜色(1 个深灰色、2 个浅灰色、3 个红色)。

于 2013-09-28T00:18:42.550 回答
0

要在不修改图像数据的情况下执行此操作,您可以使用该AlphaData属性在选定位置进行颜色叠加。给定一个灰度图像img

imshow(img, [0 2], 'InitialMag', 'fit'); hold on
red = cat(3, ones(size(img)), zeros(size(img)), zeros(size(img)));
h = imshow(red); hold off
opacity = 1.0;
set(h, 'AlphaData', opacity*double(img==300))

编辑:如果您的其他值只是 1 和 2,与 300 相比,它们会非常暗,因此[0 2]inimshow将对此有所帮助。

于 2013-09-27T23:17:59.357 回答