[已解决] 想将黑白图像中的块标签用一个类似colorbar的形式在图像旁边表示出来,但并不改变原图像颜色。

[复制链接]
20211060688 发表于 2021-6-19 10:13:16
我想将图(1)中的黑白色块标签(比如图一上面的彩色长条)用图(2)的形式在旁边表示出来,但是每次在设置colorbar的时候就会出现改变原图像颜色的问题。(图1)   (图2)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

最佳答案


lyqmath 发表于 2021-6-23 11:02:55
  1. clc; clear all; close all;
  2. A=[         0    0.1600    0.1900    0.7400    0.7900
  3.     0.1600         0    0.1900    0.7100    0.7300
  4.     0.1900    0.1900         0    0.5500    0.5900
  5.     0.7400    0.7100    0.5500         0    0.1200
  6.     0.7900    0.7300    0.5900    0.1200         0];
  7. [h,x] = hist(A(:), 5);
  8. a = [1 0 1
  9.     1 0 0
  10.     0 0 1
  11.     1 0 0
  12.     0 0 1];
  13. b = zeros(25, 3, 3);
  14. ind = round(linspace(1,size(a,1),5));
  15. for i = 1 : 5
  16.     b((i-1)*5+1:i*5,:,1) = a(ind(5-i+1),1);
  17.     b((i-1)*5+1:i*5,:,2) = a(ind(5-i+1),2);
  18.     b((i-1)*5+1:i*5,:,3) = a(ind(5-i+1),3);
  19. end

  20. figure(1); clf;
  21. axes('Units', 'Normalized', 'Position', [0.1 0.1 0.7 0.8]);
  22. h = imagesc(A); colormap(gray); axis off;
  23. axes('Units', 'Normalized', 'Position', [0.8 0.1 0.2 0.8]);
  24. imshow(mat2gray(b), []);
复制代码

9 条回复


lyqmath 发表于 2021-6-21 09:06:34
有这个图1的数字矩阵吗

20211060688 发表于 2021-6-21 12:03:52
lyqmath 发表于 2021-6-21 09:06
有这个图1的数字矩阵吗

有,类似这种矩阵:
A=[         0    0.1600    0.1900    0.7400    0.7900
    0.1600         0    0.1900    0.7100    0.7300
    0.1900    0.1900         0    0.5500    0.5900
    0.7400    0.7100    0.5500         0    0.1200
    0.7900    0.7300    0.5900    0.1200         0]

lyqmath 发表于 2021-6-21 14:22:45


可以

参考书籍《计算机视觉与深度学习实战——以MATLAB、Python 为工具》[刘衍琦等]

  1. clc; clear all; close all;
  2. A=[         0    0.1600    0.1900    0.7400    0.7900
  3.     0.1600         0    0.1900    0.7100    0.7300
  4.     0.1900    0.1900         0    0.5500    0.5900
  5.     0.7400    0.7100    0.5500         0    0.1200
  6.     0.7900    0.7300    0.5900    0.1200         0];

  7. a = colormap(hsv);
  8. b = zeros(100, 10, 3);
  9. ind = round(linspace(1,size(a,1),10));
  10. for i = 1 : 10
  11.     b((i-1)*10+1:i*10,:,1) = a(ind(i),1);
  12.     b((i-1)*10+1:i*10,:,2) = a(ind(i),2);
  13.     b((i-1)*10+1:i*10,:,3) = a(ind(i),3);
  14. end

  15. figure(1); clf;
  16. axes('Units', 'Normalized', 'Position', [0.1 0.1 0.7 0.8]);
  17. h = imagesc(A); colormap(gray); axis off;
  18. axes('Units', 'Normalized', 'Position', [0.8 0.1 0.2 0.8]);
  19. imshow(mat2gray(b), []);
复制代码




lyqmath 发表于 2021-6-21 14:24:05


效果图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

20211060688 发表于 2021-6-21 15:13:36

谢谢大佬,我接下来找找这本书。

再打扰您一下,就是现在有一个问题,在这种情况下,我应该怎么将左右两幅图片联系起来?
就是假设将图像整体看成有两个黑色色块,那么右边的bar两种颜色的话应该是可以通过自定义一个colormap来实现,但是怎么让它根据右边的图像中黑色色块的大小来确定bar中色条的长度呢?
求大佬指点一下。

lyqmath 发表于 2021-6-21 23:01:22
是的,黑色色块的大小来确定bar中色条的长度,这也是颜色映射表的思想。

如果方便,请给出对应的颜色映射关系,例如

0---->[1 0 0]
0.1600---->[0 1 1]

拿到这个关系后,就可以得到色块映射表了

20211060688 发表于 2021-6-23 10:16:51
lyqmath 发表于 2021-6-21 23:01
是的,黑色色块的大小来确定bar中色条的长度,这也是颜色映射表的思想。

如果方便,请给出对应的颜色映射 ...

谢谢大佬,这个里面没有具体的颜色对应关系,如果以之前的矩阵为例的话,它的颜色划分应该是像图中那种

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

lyqmath 发表于 2021-6-23 11:02:55
  1. clc; clear all; close all;
  2. A=[         0    0.1600    0.1900    0.7400    0.7900
  3.     0.1600         0    0.1900    0.7100    0.7300
  4.     0.1900    0.1900         0    0.5500    0.5900
  5.     0.7400    0.7100    0.5500         0    0.1200
  6.     0.7900    0.7300    0.5900    0.1200         0];
  7. [h,x] = hist(A(:), 5);
  8. a = [1 0 1
  9.     1 0 0
  10.     0 0 1
  11.     1 0 0
  12.     0 0 1];
  13. b = zeros(25, 3, 3);
  14. ind = round(linspace(1,size(a,1),5));
  15. for i = 1 : 5
  16.     b((i-1)*5+1:i*5,:,1) = a(ind(5-i+1),1);
  17.     b((i-1)*5+1:i*5,:,2) = a(ind(5-i+1),2);
  18.     b((i-1)*5+1:i*5,:,3) = a(ind(5-i+1),3);
  19. end

  20. figure(1); clf;
  21. axes('Units', 'Normalized', 'Position', [0.1 0.1 0.7 0.8]);
  22. h = imagesc(A); colormap(gray); axis off;
  23. axes('Units', 'Normalized', 'Position', [0.8 0.1 0.2 0.8]);
  24. imshow(mat2gray(b), []);
复制代码
回复此楼

20211060688 发表于 2021-6-23 11:13:37

就是这样,现在明白了,谢谢大佬指点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表