假设我有一个矩阵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
,我不明白。对我来说,似乎他们只是设置了配色方案。在网站上,我看到winter
,summer
,hot
,jet
等。我想知道如何修改,以及如何以及在何处显示颜色以及颜色是什么将被展示。
答案 0 :(得分:3)
matlab中的Colormap允许您为索引图像设置颜色(在您的情况下,您只有2个索引 - 0,1通常为黑色和白色)。
正如您所提到的winter
,summer
,hot
,jet
等,MATLAB有一些预定义的设置。
您可以定义自己的色彩映射。为此,您需要首先构建一个nX3矩阵,其中n是您需要的颜色数,3是RGB颜色空间。
在上面的例子中
imagesc(A)
给出蓝色和黄色图像(因为默认值为parula
)。
如果您按如下方式定义新的色彩图矩阵
Cmap = [1 1 1; 0 0 0];
colormap(Cmap);
您将获得黑白图像(因为Cmap中的值)。您可以更改不同颜色的Cmap
矩阵值。