加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

算法 – 计算人类如何看待不同颜色之间的相似性

发布时间:2020-12-14 04:24:13 所属栏目:大数据 来源:网络整理
导读:我正在一个用户可以使用rgb 0-255范围内的任何颜色描述物理对象的网站.我们提供一些简单的调色板,便于点击,但全色轮是必需的. 在幕后,其中一个过程比较了对象的两个用户描述,并将其分类为相似性. 我想要做的是获得两个颜色与人类感觉相似的分数.基本上,该算
我正在一个用户可以使用rgb 0-255范围内的任何颜色描述物理对象的网站.我们提供一些简单的调色板,便于点击,但全色轮是必需的.

在幕后,其中一个过程比较了对象的两个用户描述,并将其分类为相似性.

我想要做的是获得两个颜色与人类感觉相似的分数.基本上,该算法需要确定一个2人挑选2种不同的颜色是否可以描述相同的对象.因此,红色 – 红色应为100%,大多数灰色的阴影彼此将为100%,但红色>绿色绝对不是一场比赛.

为了更好地了解算法的工作原理,我将灰度和每个色调的3个亮度与集合中的每个其他颜色相对应,并且与黑色,视觉上相同(100%)的白色和灰度表示无匹配(0%)表示中间值.

我的第一个(非常简单的方法)是将RGB值简单地视为颜色立方体中的坐标,并计算它们之间的距离(矢量的大小).

这给Black-> 50%Gray带来了许多问题,比Black-> 50%Blue更大的距离.已经进行了数百次比较,并要求提供反馈意见,这似乎并不符合人类的看法(如下所示)

方法2将RGB值转换为HSV.然后,我在色相上产生80%的分数,而Sat / Lum上的其他20%则得分.这似乎是迄今为止最好的方法,但仍然会发生一些奇怪的比赛

方法3是尝试混合 – 计算HSL值,但最终得分基于HSL色缸空间中的2种颜色之间的距离(如3D极坐标).

我觉得我必须重新发明这个轮子 – 这是否已经完成了?我在Google上找不到任何体面的例子,你可以看到我的方法留下了一些希望.

所以我的问题是:

有没有一个标准的方法来做到这一点?如果是这样,怎么办?如果没有,任何人都可以提出改进我的方法的方法?如果需要,我可以提供代码片段,但是由于3天的调整,因此会被警告为目前凌乱的地狱.

解决方案(Delta E 2000):
使用下面提供的建议,我已经实施了Delta E 2000比较器.我不得不调整加权值是相当大的 – 我不是在寻找颜色是不可察觉的不同,但没有很大的不同.如果有人感兴趣,所得情节低于…

解决方法

有几十个可能性. EasyRGB有一个专门的页面.在这些列表中,DeltaE 2000可能与人类的感知有最好的相关性,而且计算也非常复杂. Delta CMC几乎与一半的代码一样好(虽然计算还不是很简单).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读