编辑
我有一个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将对此有所帮助。