RGB相似颜色近似算法

鉴于在RGB中我们可以表示256 ^ 3种组合= 16,777,216种颜色,并且由于人眼只能区分大约10,000,000种,因此显然有6,216种RGB组合的过剩,其色彩与对应颜色无法区分.

压缩算法在此基础上工作,当我相信帧中颜色范围的空间差异近似时.考虑到这一点,如何可靠地计算给定颜色是否在与另一个颜色“相似”的范围内?

当然,“相似性”将是某种可以调整的任意/可调参数,但无论如何这都是近似值.那么任何指针,伪代码,直观的代码示例,资源都有帮助我建模这样的功能吗?

非常感谢您的帮助

解决方法

可以使用The CIEDE2000 Color-Difference Formula计算感知色差. CIEDE2000 formula基于LCH色彩空间(亮度,色度和色调). LCH颜色空间表示为圆柱体(参见图像 here).

一个不太准确(但更易于管理)的模型是CIE76色差公式,该公式基于Lab color space ( L*a*b*). RGB和CMYK值与L * a * b *之间没有简单的公式转换,因为RGB和CMYK颜色模型取决于设备.首先需要将RGB或CMYK值转换为特定的绝对色彩空间,例如sRGB或Adobe RGB.此调整将取决于设备,但来自变换的结果数据将与设备无关,允许将数据转换为CIE 1931颜色空间,然后转换为L * a * b *. This文章解释了程序和公式.

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效