使用imagesc在矩阵中给出特定值的特定颜色

时间:2016-10-24 03:54:32

标签: matlab

假设我有一个矩阵A

A = [1 1 1 1 1 1 1; 
     1 0 0 1 0 0 1;
     1 0 0 0 0 1 1;
     1 0 1 0 1 0 0;
     1 0 0 0 0 0 1;
     1 1 1 1 1 1 1];

我想在边缘给出一个特定颜色的1,并且不在边界处的特定颜色和0'特定颜色的1,我该怎么办?走吧?

目前我只有imagesc(A),我一直在阅读colormap,我不明白。对我来说,似乎他们只是设置了配色方案。在网站上,我看到wintersummerhotjet等。我想知道如何修改,以及如何以及在何处显示颜色以及颜色是什么将被展示。

1 个答案:

答案 0 :(得分:3)

matlab中的Colormap允许您为索引图像设置颜色(在您的情况下,您只有2个索引 - 0,1通常为黑色和白色)。 正如您所提到的wintersummerhotjet等,MATLAB有一些预定义的设置。

您可以定义自己的色彩映射。为此,您需要首先构建一个nX3矩阵,其中n是您需要的颜色数,3是RGB颜色空间。

在上面的例子中

imagesc(A)

给出蓝色和黄色图像(因为默认值为parula)。

如果您按如下方式定义新的色彩图矩阵

Cmap = [1 1 1; 0 0 0];
colormap(Cmap);

您将获得黑白图像(因为Cmap中的值)。您可以更改不同颜色的Cmap矩阵值。