Matlab choose random color for plotting询问如何使用随机选定颜色创建色彩映射表。我问如何为色彩图选择视觉上不同的颜色。随机选择的颜色不保证在视觉上与众不同。事实上,在我的问题中,我使用随机颜色作为反例。
如果我的问题是重复的,那么它应该是Automatically plot different colored lines的副本,因为至少one of the answers,回答了我关于视觉上不同颜色的问题,即使问题没有要求详细说明。但是Matlab choose random color for plotting的答案的无是有帮助的,所以不要使用那个!
lines
色彩图以预定义的顺序交替显示视觉上不同的7种颜色。 flag
和prism
也会这样做。颜色为lines
的7种不同颜色重复,prism
为6,flag
为4。
这些色彩图对于区分图像中的标记段非常有用,因为标签通常具有在jet
或parula
色彩空间中具有低视觉清晰度的连续值。
例如,使用NYUv2 dataset中的第一张图片,您可以看到洗碗机和计数器使用colormap('parula')
对于使用colormap('lines')
的洗碗机和柜台来说效果会更好,但对于椅子和垃圾桶更糟糕,因为垃圾桶的值是12,椅子是5. 12 mod 7 = 5,所以他们得到相同的颜色分配< / p>
我有 n 标签,所以我想定义一个具有 n 交替视觉上不同颜色的色彩图。然后,我可以避免两个标签共享相同模数的问题。
我知道如何创建自定义色彩图,但挑战在于使色彩在视觉上与众不同。我尝试的一件事是从喷射中随机抽取颜色(类似于建议Matlab choose random color for plotting的解决方案)。
c_jet = colormap('jet');
idx = randperm(size(c_jet, 1));
c_new = c_jet(idx(1:30),:);
colormap(c_new);
但颜色在视觉上不够明显。天花板和墙几乎完全相同。
可能有30种不同的颜色要求太多,但我想要一种尽可能接近的一般方法。
答案 0 :(得分:1)
例如,从维基百科中,您可以获得可区分颜色的列表
引用包含指向stackexchange线程的链接,您可以在其中阅读更多内容。
使用这些颜色,您可以构建自己的色彩映射。