您的位置:首页 > 其它

指定的颜色信息显示方法

2014-11-01 15:41 274 查看

0 引言

有关颜色映射表,对自主设置图像或曲线显示效果,添加数据信息到颜色等,有重要作用。其本质还是根据要求构造出颜色映射表,然后对应该表显示出合适的颜色。

1 内容

对矩阵A,
A = [2 2 0 0 0 2 2 2 2 2
2 2 2 0 0 0 2 0 0 2
0 2 2 2 2 2 2 0 0 2
2 2 2 0 2 0 2 2 2 0
0 2 2 2 0 9 0 2 2 2
0 0 0 2 0 0 2 2 2 2
0 0 5 0 2 0 0 0 2 2
0 4 0 0 2 0 2 0 2 2
0 0 3 0 2 2 2 2 2 2
1 1 0 2 2 2 2 2 2 0];
要求:将所有的0用白色表示,所有的跨越集团(左右或上下连通),此处为2和9,用黑色表示,其他的用colorbar对应的颜色。

代码

% By lyqmath
% DLUT School of Mathematical Sciences
% BLOG:http://blog.csdn.net/lyqmath
clc; clear all; close all;
A = [2 2 0 0 0 2 2 2 2 2
2 2 2 0 0 0 2 0 0 2
0 2 2 2 2 2 2 0 0 2
2 2 2 0 2 0 2 2 2 0
0 2 2 2 0 9 0 2 2 2
0 0 0 2 0 0 2 2 2 2
0 0 5 0 2 0 0 0 2 2
0 4 0 0 2 0 2 0 2 2
0 0 3 0 2 2 2 2 2 2
1 1 0 2 2 2 2 2 2 0];
figure;
imagesc(A); % 显示矩阵A
% 借助jet颜色表构造
map1 = colormap('jet');
A1 = unique(A(:)); ind = max(A1(:));
map2 = map1(round(linspace(1, size(map1, 1), ind)), :);
map2(A1(1)+1, :) = [1 1 1];
map2(A1(3)+1, :) = [0 0 0];
map2(A1(7)+1, :) = [0 0 0];
colormap(map2);
colorbar;
hold on;
for i = 1 : size(A, 1)
for j = 1 : size(A, 2)
% 标注
text(j, i, num2str(A(i, j)), 'color', 'r');
end
end

结果





2 总结

类似的,可以应用于很多相关问题中,比如使用三维曲面+颜色来表示四维数据等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: