给特定像素一定的颜色

时间:2013-09-27 23:06:05

标签: matlab colors set pixel

修改

我的grayscale图像包含像素值300,我手动将其分配给具有特定条件的像素。

案例是图片中的其他值为12。因此,我现在将有三个值:12300

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

感谢。

2 个答案:

答案 0 :(得分: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个红色)。

答案 1 :(得分: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]中的imshow将有助于此。