• Colour metric颜色度量


    颜色度量

    之前项目中使用的颜色距离计算材料,现在做个总结,原文参见

    动机

    • 当将真彩色(摄影)图像映射到缩小的调色板(例如,256 色)时,每个真彩色像素都必须映射到最接近原始颜色的调色板条目。
    • 矢量量化是一种有损压缩技术,当应用于图像时,一次量化多个像素。因此,它是前一点中描述的纯色量化(或调色板映射)的扩展,并且具有相同的质量标准。
    • 其他有损图像压缩技术使用“质量标准”——原始颜色和量化颜色之间的差异应保持在某个阈值以下。这就要求你能确定图片之间的差异,从像素之间的差异开始。

    因此,问题“最接近的颜色是什么?” 和“如何测量颜色之间的距离?” 变得相关。

    本文评估了几种常见的颜色距离指标,并提出了既简单又能产生良好结果的新公式。

    概述

    • RGB三色空间映射一种颜色,两个颜色的欧几里得距离

    在这里插入图片描述

    PC 的图形应用程序通常采用 -绿-(RGB) 颜色空间。该模型很好地映射了普通阴极射线管(CRT) 显示器的工作方式。这些显示器具有三种荧光粉,当它们被电子束撞击时会发出红光、绿光或蓝光。RGB 模型的另一个优点是它是一个三维正交空间,这正是我们需要欧几里得距离函数的空间。

    RGB 的问题在于它并不总是最容易使用的模型(这就是打印机通常使用 CMYK 模型的原因),更根本的是,它并没有模拟我们(人类)感知颜色的方式。具体来说,颜色感知是非线性的,并不完全正交。

    标准颜色模型是 CIE XYZ 颜色空间。所有其他模型都可以解释为 CIE XYZ 颜色空间的不同映射或子集。CIE 是一个复杂的模型,最重要的是,尽管它定义了可以区分的所有颜色的空间,但它并没有提供 感知上统一的颜色空间。因此,CIE XYZ 空间中两点之间的距离与这些颜色的相对接近度无关。经过十年的辩论,CIE 未能就感知统一色彩空间的定义达成一致,因此将其批准印章应用于**两个相互竞争的感知统一色彩模型:CIE L * a * b *和 CIE L *u * v *** 。多项研究发现的一个特定缺陷是 CIE L * a * b * 随着颜色色度的增加逐渐过分强调色差。

    视频和电视行业研究了感知均匀色彩模型的问题,以实现高质量的压缩。视频频道的带宽有限;要求对亮度和色度信息进行紧凑编码。但是当决定丢弃一些数据时,会希望在保留最佳视觉质量的同时这样做。视频行业开发的两个知名模型是“YIQ”和“YUV”。YUV 被 Betamax 标准和 PAL 和 SECAM(欧洲电视)以及一些计算机图形格式使用。NTSC(美国电视)使用YIQ;基本上,YIQ 是 YUV,其缩放因子针对减少的带宽进行了优化。为了完整起见,以下是从伽马校正的 R’G’B’ 转换为 YUV 和 YIQ 的矩阵:

    在这里插入图片描述

    顺便说一下,YUV 和 YIQ 的“Y”是颜色的伽马校正“亮度”分量;CIE XYZ 模型的“Y”是线性(= 未校正)亮度。两者是相关的,但它们并不相同。

    概括一下,并为解决方案指明方向:

    • 我们需要的是一个给出两种颜色之间“距离”的公式。该距离仅用于比较,以验证一种颜色A是否更接近颜色B或颜色 C
    • 在感知均匀的色彩空间中,欧几里得距离函数给出了这个距离。这是最直接(也是最明显)的解决方案,但不是唯一的解决方案。
    • 三种著名的颜色模型(CIE L * u * v *、YUV 和 R’G’B’)在感知均匀性方面都得分“相当好”(或者他们这么说…)。
    • 对这些和其他公式的正确测试是将他们选择的“最接近的颜色”与人们选择的颜色进行比较。

    考虑到最后一点,我编写了一个小程序,该程序使用 RGB 立方体的颜色创建一个调色板,该立方体被切割成 64 个小立方体(每个红色、绿色和蓝色分量两个位,给出 2 2 × 2 2 × 2 2 = 64 2^2×2^2×2^2=64 22×22×22=64颜色)。程序显示调色板中的一种颜色,例如颜色 24,测试人员从剩余的 63 个调色板条目中选择最接近的颜色。

    下一步是让程序使用上述任何颜色空间自动选择最接近的颜色。

    请注意,程序的目标不是找到从一个色板到下一个色板的最小显着差异;我的一个“观察者”可能用来匹配另一种颜色的颜色明显不同。我的目的是让他们选择最接近的条目,以便深入了解人们如何评估颜色“接近度”

    结果

    由于我在这个实验中使用的测试组规模较小,下面的结果可能应该被认为是轶事。

    • “正确”颜色的选择是主观的。一个人可能会发现适当的亮度比适当的色调更重要,其他人则认为替换颜色应尽可能接近色调和饱和度。因此,不会找到适合所有人的单一公式。
    • **非线性 R’G’B’**只是公平的。在许多情况下,它会选择太深或太蓝的颜色。
    • YUV总是比非线性 R’G’B’ 好,但远非完美。
    • **CIE L * u * v ***做出了许多出色的选择,但在少数情况下,它会产生不可接受的错误。
    • 根据以下公式, 有几个人建议在 R’G’B’ 中使用加权欧几里得距离:

    在这里插入图片描述

    • 如下文“伽马校正”部分所述,人眼对亮度的感知是非线性的。从实验看来,这种非线性的曲线对于每种颜色来说是不同的。所呈现的加权欧几里得距离对于“红色”信号为 128 或更多(在 0-255 范围内)的颜色子集非常有效。对于完整 R’G’B’ 立方体的另一半,这种不同的加权产生了更好的结果:

    在这里插入图片描述

    虽然蓝色对亮度感觉的贡献很小(约 10%),但人类视觉在蓝色中具有非常好的颜色辨别能力 [ Poynton, 1999 ]。这可以解释为什么具有较大“蓝色”贡献的颜色需要与具有少量蓝色的颜色不同的权重。

    低成本近似值

    提议的算法(由我们的产品EGIAniSpritePaletteMaker使用)是加权欧几里得距离函数的组合,其中权重因子取决于颜色的“红色”分量有多大。第一个计算“红色”的平均水平,然后加权ΔR’和 ΔB’信号作为平均红色水平的函数。颜色 C 1和 C 2之间的距离(其中每个红色、绿色和蓝色通道的范围为 0-255)为:

    在这里插入图片描述

    这个公式的结果非常接近 L * u * v * (使用修改后的亮度曲线),更重要的是,它是一个稳定的算法:它没有突然给出远离最佳结果的颜色范围. 公式的权重可以进一步优化,但同样,最接近颜色的选择是主观的。

    c代码实现

    typedef struct {
       unsigned char r, g, b;
    } RGB;
    
    double ColourDistance(RGB e1, RGB e2)
    {
      long rmean = ( (long)e1.r + (long)e2.r ) / 2;
      long r = (long)e1.r - (long)e2.r;
      long g = (long)e1.g - (long)e2.g;
      long b = (long)e1.b - (long)e2.b;
      return sqrt((((512+rmean)*r*r)>>8) + 4*g*g + (((767-rmean)*b*b)>>8));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    伽马校正

    可能已经注意到,上面的段落提到了 RGB 和 非线性R’G’B *'*颜色空间。线性和非线性 RGB 空间通过伽马校正相关联。伽马校正领域令人困惑,因为同一个术语用于描述几种完全不同(但相关)的现象:

    • 在一定范围内,人眼的非线性与幂函数相匹配。这1/γ fraction 表示这个幂函数,它的值介于 1/2 和 1/3 之间(除其他外,该值取决于观察条件——例如,环绕光)。作为一种折衷方案,现在许多文献都假定 1/2.2 和 1/2.5 之间的值。
    • 施加到 CRT 栅极的电压与所得荧光粉亮度之间的非线性是幂函数,其值接近 2.5。顺便说一句,CRT 显示器的非线性是阴极静电和电子枪栅极的函数。荧光粉本身是相当线性的,至少在强度达到约 75% 开始饱和之前是这样。计算机显示的谈话和新闻组中反复出现的主题在伽马中变化很大,几乎总是由于显示器调整不当(“黑电平”错误)和显示器对环境光的反射。
    • 视频(电视)和计算机成像从摄影中复制了非线性和伽马符号。相机胶卷不是线性的,但可以用幂函数近似(在一定范围内)。

    参考

    • Alman, D.H.; “Industrial color difference evaluation”; Color Research and Application; No. 18 (1993); pp. 137-139

    • Foley, J.D., A. van Dam, S.K. Feiner, J.F. Hughes; “Computer Graphics, Principles and Practice”; second edition; Addison-Wesley; 1990; pp. 574-600.

      An overview of many colour models, with the focus on how they relate to each other and to the CIE XYZ model. On page 589, the book says: “The Y component of YIQ […] is defined to be the same as the CIE Y primary”. As the CIE Y (luminance) is linear, this implies that the Y channel of YIQ (video luma) is linear as well. This is explicitly contradicted by Poynton’s colorspace-faq, item 10.

    • Granger, E.M.; “Is CIE Lab* Good Enough for Desktop Publishing?”; technical report, Light Source Inc.; 1994.

      Granger claims that CIE Lab* has flaws. The Guth ADT colour space is proposed as an alternative.

    • Nemcsics, A.; “Color Dynamics”; Publisher Akadmiai Kiad, Budapest; 1993.

    • Poynton, Charles A.; “Gamma and its Disguises”; Journal of the Society of Motion Picture and Television Engineers; Vol. 102, No. 12 (December 1993); pp. 1099-1108.

    • Poynton, Charles A.; “Frequently Asked Questions About Colour” (“colorspace-faq”); 1999.

      Maintained and available on the Internet in text (ASCII), Postscript and Adobe Acrobat formats.

  • 相关阅读:
    15、JAVA入门——封装
    Rust 基础(四)
    如何使用 TypeScript 编写“ Hello World “程序
    如何修改文件的修改日期?
    数组指针(用几个例子来看看用法)
    【多线程】阻塞队列、定时器、线程安全的单例模式的原理及实现
    RabbitMQ 之 死信队列
    巧用TXT文档导入所有快递单号查询物流详情
    五种多目标优化算法(MOGWO、MOJS、NSWOA、MOPSO、MOAHA)性能对比(提供MATLAB代码)
    九州云获颁OpenInfra Days China“社区卓越领导力奖”,八大议题与你共话开源
  • 原文地址:https://blog.csdn.net/uncle_ll/article/details/126471833