编辑
我有一个grayscale
包含 的像素值的图像300
,我手动将其分配给具有特定标准的像素。
情况是图像中的其他值是1
和2
。所以,我现在将有三个值:1
、2
和300
。
为了以有意义的方式显示图像,我们可以使用thresholding
. 因此,这与具有值1
和的像素一样2
。对于具有 value 的像素300
,我如何为其分配一些颜色以便能够将其与图像的其他部分区分开来。
谢谢。
如果您拥有的所有值都是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 个红色)。
要在不修改图像数据的情况下执行此操作,您可以使用该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
将对此有所帮助。