![]() |
1
39
这里是一个 theoretical explanation 以及C中的algo:
|
![]() |
2
25
下面是Java中的PGRAS算法:
|
![]() |
3
5
这个问题的大多数答案都建议在将RGB值映射到三维空间时计算两种颜色之间的距离。这项技术的问题在于,在3D RGB空间中,两种颜色具有相似的色调,但不同的饱和度或亮度级别可能会比两种颜色具有不同的色调,但非常相似的饱和度和亮度级别,相互映射得更远。换句话说,在3D RGB空间中,蓝色和绿色可能比红色的两个阴影更接近。在这个应用中,确保团队颜色不同,色调差异应该比亮度和饱和度更重要。 因此,我将把颜色映射从RGB转换为色调、饱和度和亮度级别,然后只检查色调值是否有足够的距离。 Wikipedia has an explanation for converting RGB to HSV. LiteratePrograms has some sample code. |
![]() |
4
5
我将使用两种颜色之间的三维距离,其中x,y,z是r,g,b值。 看看这个Perl库: http://metacpan.org/pod/Color::Similarity::RGB 这很容易实现。 只需确保(r1-r2)^2+(g1-g2)^2+(b1-b2)^2>=阈值^2 |
![]() |
5
4
Wikipedia 详细介绍了一些可以用于此目的的算法。 还有前面的stackoverflow问题: Finding an accurate âdistanceâ between colors |
![]() |
6
2
从算法的角度来看,这相当简单。每种颜色代表三维空间中的一个点,颜色之间的差异是这些点之间的距离。 大概这里的重点是确保颜色明显不同。如果是这样的话,决定最小距离可能是相当困难的。问题是(至少对于视力正常的人来说)有些差异比其他的更容易看到。例如,大多数人对绿色色调的细微差异比同样细微的红色或蓝色色调变化更敏感。有一些算法可以考虑到这一点,但它们是基于人类的平均视力,因此没有一个算法可以保证对任何一个人都准确无误。 只是为了好玩,你可能想看看 X-rite's online color vision test . |
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
![]() |
assembler · Nextjs没有处理发布请求 1 年前 |
|
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
![]() |
Toniq · javascript为php保存多维数组 1 年前 |