修改
我的grayscale
图像包含像素值300
,我手动将其分配给具有特定条件的像素。
案例是图片中的其他值为1
和2
。因此,我现在将有三个值:1
,2
和300
。
为了以有意义的方式显示图像,我们可以使用thresholding
。因此,这与值为1
和2
的像素相同。对于值为300
的像素,如何为其分配一些颜色,以便能够将其与图像的其他部分区分开来。
感谢。
答案 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
将有助于此。