Matlab:在没有黑色的情况下使用灰度图像

时间:2014-05-21 21:08:21

标签: matlab colors grayscale

从简单的2D矩阵m(0或1)开始作为例子:

m = [ 0 0 0 1 1
      0 1 1 1 0
      1 1 0 0 1
      0 0 0 1 0 ] 

如何使用imagesc()将此图像显示为仅白色和一个灰色?目前,我的代码是这样的:

imagesc(m)
colormap(gray)
colorbar

我已经尝试了各种方法来调整色彩映射并设置CLim使用哪些值的限制,但我还没有找到一种方法来限制实际的颜色本身,而不是使用白色和黑色的值对于0和1,我们分别具有白色和(浅)灰色值1和0。有什么快速简便的方法吗?

注意:我还应该提到我想要这些,所以我可以覆盖相同尺寸(但不同的值)的等高线图并使用黑色,所以我不确定这是否会影响任何答案,但我也很乐意接受这方面的建议。

1 个答案:

答案 0 :(得分:3)

imagesc(m)
cmap = [.7 .7 .7 %// light gray
        1  1  1] %// white
colormap(cmap)
colorbar('Ytick',[.25 .75],'Yticklabel',[0 1]) %// only two values in colorbar

enter image description here