一种基于RGB空间的不定长颜色列表生成算法的制作方法

文档序号:35854915发布日期:2023-10-25 23:38阅读:25来源:国知局
一种基于RGB空间的不定长颜色列表生成算法的制作方法

本发明涉及颜色列表生成算法,更具体地说,涉及一种基于rgb空间的不定长颜色列表生成算法。


背景技术:

1、rgb色彩模式是工业界的一种颜色标准,是通过对红(r)、绿(g)、蓝(b)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,rgb即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一,rgb是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于三者亮度之总和,越混合亮度越高,即加法混合,红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮,红、绿、蓝三个颜色通道每种颜色各分为256阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色灰度数值相同时,产生不同灰度值的灰色调,即三色灰度都为0时,是最暗的黑色调;三色灰度都为255时,是最亮的白色调,在数字模型可视化领域中,时常会出现需要将不同的物体按照一些非视觉信息(比如物体编号,材质编号等信息)进行视觉上的区分的需求,通常解决方案为给每个区分出来的类别标记为一个单独的颜色。

2、因此,我们需要一个颜色之间差别较大的颜色列表用来分配给每一个类别的物体,目前可用的方案主要包括随机颜色和预设颜色列表两种,随机颜色方案顾名思义,使用随机数生成每个id对应的颜色。通常是通过生成三个0~255(包括0和255)之间的随机数,并将它们填入颜色的rgb通道来生成颜色值,成随机颜色,这种方法简单快速,但是容易产生一些自己不太满意的颜色,比如纯的黑色、白色等会与文本颜色一样的颜色,预设颜色列表方案则是人工挑选一系列差异较大的颜色,并将它们组成一个列表,在使用时,按照列表的顺序逐个抽取颜色进行分配。

3、现有颜色列表算法,依然存在下列问题:在随机颜色方案中,由于完全依赖随机数生成颜色,可能会出现相近颜色的情况。这可能导致视觉上的混淆,特别是当大量的id需要进行颜色分配时,使用随机颜色因为每个类别的颜色都是独立的随机计算,所以有一定概率出现比较接近的颜色,降低了辨识度。

4、另一方面,预设颜色列表方案在一些情况下也有局限性,当需要分配的id数量超过预设颜色列表的长度时,就会出现不足的情况,比如预设颜色列表的情况下,则存在一个列表长度限制,如果需要的颜色数量超过列表的长度,就无法满足需求。

5、鉴于此,我们提出一种基于rgb空间的不定长颜色列表生成算法。


技术实现思路

1、1.要解决的技术问题

2、本发明的目的在于提供一种基于rgb空间的不定长颜色列表生成算法,以解决上述背景技术中提出的问题。

3、2.技术方案

4、1.一种基于rgb空间的不定长颜色列表生成算法,其特征在于:包括算法实现步骤如下:

5、s1:当颜色小于等于八个时:首先颜色个数小于等于8时,将rgb三个通道分别使用0和1进行排列组合,其中rgb均为0时即时黑色保留为背景色,其他7个颜色加入颜色列表。

6、s2:当颜色大于八个时:当数量大于8则对各个通道的颜色值进行中值切分来产生新的尽可能与已有数值差值更大的数值,将0和1加入“旧数值列表”,同时取0和1的中值,即0.5,加入“新数值列表”。

7、s3:数值划分:然后分别在rgb三个通道对“旧数值列表”和“新数值列表”的选择进行排列组合,方便通过各个通道新生成的数值参与旧数值混合进行颜色生成,其中注意过滤掉三个通道都使用旧数值的情况,即最终有7种组合,且每种组合中至少包含一个通道选择了“新数值列表”。

8、s4:颜色排列生成:然后针对每种组合中的可选数字进行全排列组合,并将结果加入颜色列表,方便生成任意长度的颜色列表。

9、s5:中值切分排列:如果此时颜色列表长度依然不够,则将0.5从“新数值列表”移除,加入“旧数值列表”,并将0.25和0.75加入“新数值列表”,重复以上操作继续扩展颜色列表,以此类推,直到颜色列表长度满足需求。

10、3.有益效果

11、相比于现有技术,本发明的优点在于:与使用随机颜色相比,本发明中的算法不会产生重复颜色,且无论产生多少颜色都能保证在现有颜色列表长度下尽可能保持不同颜色之间的差异最大,对于工业渲染中需要按照id给不同物体赋予不同颜色的情况下十分实用;

12、与预设颜色列表相比,本发明中的算法可以在颜色列表长度上更加灵活,因为主要的颜色都提前到列表前列,所以列表长度可以根据需求灵活调整,可以根据实际使用需求随时加长或者截短。



技术特征:

1.一种基于rgb空间的不定长颜色列表生成算法,其特征在于:包括算法实现步骤如下:


技术总结
本发明公开了一种基于RGB空间的不定长颜色列表生成算法,属于颜色列表生成算法技术领域。首先颜色个数小于等于8时,将RGB三个通道分别使用0和1进行排列组合,当数量大于8则对各个通道的颜色值进行中值切分来产生新的尽可能与已有数值差值更大的数值,将0和1加入“旧数值列表”,同时取0和1的中值,即0.5,加入“新数值列表”,然后分别在RGB三个通道对“旧数值列表”和“新数值列表”的选择进行排列组合,无论产生多少颜色都能保证在现有颜色列表长度下尽可能保持不同颜色之间的差异最大,对于工业渲染中需要按照id给不同物体赋予不同颜色的情况下十分实用,并且可以在颜色列表长度上更加灵活,可以根据实际使用需求随时加长或者截短。

技术研发人员:吴亚西
受保护的技术使用者:吴亚西
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1