指定的颜色信息显示方法

    技术2022-05-20  66

    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用白色表示,所有的跨越集团(左右或上下连通),此处为29,用黑色表示,其他的用colorbar对应的颜色。

    代码

    % By lyqmath

    % DLUT School of Mathematical Sciences

    % BLOGhttp://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 总结

    类似的,可以应用于很多相关问题中,比如使用三维曲面+颜色来表示四维数据等。


    最新回复(0)