图片缩略图

最大不同颜色发生器

版本2.2.0 (190 KB) 斯蒂芬。
在RGB颜色图中生成最大的不同颜色。

760次下载

更新2020年11月25日

查看许可协议

MAXDISTCOLOR生成最大区分颜色的RGB颜色图。

MAXDISTCOLOR有两个必需的输入参数:
1.所需的颜色数量。
2.从sRGB转换为统一颜色空间的函数句柄(如CIELAB, DIN99, CAM02-UCS, CAM16-UCS, OSA-UCS等)。

可选输入参数允许用户:
*限制亮度范围。
*限制色度范围。
*提供被排除的颜色的颜色图(例如背景色)。
*提供要包括的颜色的颜色图(例如公司配色方案)。
*指定RGB位深度(例如,每个通道8位,TrueColor)。
*对色彩图进行排序(例如,通过色相,亮度,最远的颜色等)。

有关必需和可选输入参数的解释,请参见Examples选项卡(HTML文档)。

% % % %的警告

在大范围内要求多种颜色可能需要数小时/几天/..的处理。有些期权组合是不容易处理的。

%%示例%%

>> n = 5;
>>fun=@(m)sRGB_to_OSAUCS(m,真,真);%推荐OSA-UCS
>> rgb = maxdistcolor(N,fun)
rgb=
1.0000 0.0000 1.0000
0.0000 0.0000 1.0000
0.3016 0.0000 0.3492
1.0000 0.0000 0.0000
0.0000 0.4331 0.0000
>>轴('ColorOrder',rgb,'NextPlot','replacechildren')
> X = linspace(0,pi*3,1000);
>>Y=bsxfun(@(x,n)n*sin(x+2*n*pi/n),x(:),1:n);
> >的情节(X, Y,“线宽”,4)

>> maxdistcolor(5,fun, 'exc',[0,0,0]) %排除黑色(例如背景)。
ans =
1.0000 0.0000 1.0000
0.0000 0.0000 1.0000
0.0000 1.0000 0.0000
1.0000 0.0315 0.0000
0.7619 0.8189 1.0000

>> maxdistcolor(5,fun, 'inc',[1,0,1]) %包含品红。
ans =
1.0000 0.0000 1.0000%品红
0.0000 0.0000 1.0000
0.3016 0.0000 0.3492
1.0000 0.0000 0.0000
0.0000 0.4331 0.0000

> > (rgb、实验室)= maxdistcolor (6 @sRGB_to_CIELab Lmin, 0.5,“Lmax”,0.7)
rgb=
0.7619 0.0000 1.0000
1.0000 0.0000 0.0000
0.0000 0.7795 0.0000
0.0000 0.5591 1.0000
0.8254 0.6457 0.0794
0.8254 0.2835 0.5397
实验室=
50.3682 89.7713 -77.4020
53.2408 80.0925 67.2032
69.9953 -71.4448 68.9550
58.7226 09.8163 -64.4545
69.9008 05.1696 70.3753
52.1421 59.8639 -06.6541

%%动机%%

MAXDISTCOLOR的开发是由以下因素推动的:
1.现有的“独特颜色”生成器使用不充分的颜色空间和/或算法,导致不佳的颜色清晰度。
2.实现具有8GB RAM的64位PC可以在整个1600万色的24位TrueColor上运行,允许整洁简单的矢量化MATLAB代码。

这两种动机与两个非琐碎任务紧密相关,这两个任务必须得到解决,才能产生最大程度的不同颜色:
1.寻找最佳颜色组合的算法需要找到全局最优值,这是一项随着所需颜色数量和色域大小呈指数增长的任务。在MAXDISTCOLOR中,我使用了一个简单贪婪算法的重复应用来寻找最大不同的颜色:重复贪婪算法不是特别快,也不是寻找全局最优值的一般解决方案,但幸运的是,它对规则采样的RGB立方体给出了很好的结果。请注意,该算法不包含随机数:它是完全确定的,可重复的。
2.定义一个真正统一的颜色空间:古老的CIELAB(我能找到的大多数现有工具都使用它)并不是真的非常统一。对于MAXDISTCOLOR,我推荐OSA-UCS或CAM02-UCS或CAM16-UCS,它们都能提供更准确的颜色距离测量。

引用作为

斯蒂芬(2021)。最大不同颜色发生器(//www.tianjin-qmedu.com/matlabcentral/fileexchange/70215-maximally-distinct-color-generator), MATLAB中央文件交换。检索