【问题标题】:Mathematical Calculation for Colorfulness of Image (Color Theory)图像色彩的数学计算(色彩理论)
【发布时间】:2019-04-14 07:09:12
【问题描述】:

我最近测试了David Haslera and Sabine Susstrunk 确定图像“色彩”的以下算法,该算法在 Python here 中实现。然而,我注意到这个算法在一些测试图像上的表现很有趣。

单个红色、绿色和蓝色像素的 3x1、每通道 8 位 RGB 图像的色彩度指标似乎已经达到了最高水平(请随意证明我错了,这就是我的想法'观察到)。

这就是我的意思。此图像的色彩度为 206.52:

虽然这张 4x4 图像的色彩是 185.13:

而纯黑白图像的彩色度为 0,以进行比较。 (这些值是在将每个通道的电平存储为 0 到 255 之间的整数时计算的)。

直觉上,我认为第二张图片比第一张更“多彩”,但这不是该算法给出的结果。

基本上,我正在寻找与图像中出现的颜色变化相对应的其他测量值。但是,我不确定这在数学上会是什么样子,尤其是因为图像被表示为不同的红色、蓝色和绿色通道。

一个想法可能是简单地记录图像中不同像素的数量(每次看到一个新颜色的像素时,就在计数中添加一个),但是当有许多几乎无法区分的暗(但不同)像素。如果有许多几乎相同颜色的略有不同的像素,它也不会做得很好。然而,在测试这种极端情况时,那篇论文中的算法似乎打破了我的直觉。

是否有人知道可以更准确地表示图像中出现的各种颜色的其他指标?或者您可以自己提议一个吗?我对任何想法都持开放态度。

【问题讨论】:

  • 色彩被 CIE 定义为“视觉感知的属性,根据该属性,一个区域的感知颜色看起来或多或少是彩色的”。对于给定的 RGB 色彩空间,您的 3 个 RGB 样本具有最大色度,充满它们的图像比具有较少色度样本的图像具有更多色彩也就不足为奇了。

标签: python image image-processing statistics color-theory


【解决方案1】:

我的建议(并非来自任何权威)是将图像转换为 HSV,然后在一组不规则的 bin 上构建 直方图。一个简单的方案是

  1. 三个灰色箱(svv
  2. 六个色调箱(sh 的三分之一)中的每一种,“色调”(v>1/2) 和“阴影”
  3. 十二个纯色箱:六种色调中的每一种都具有相同的v区别

这非常粗略地近似于颜色之间的感知距离;通过调整各个细分的数量,可以轻松获得其他数量的 bin。

对直方图进行归一化以获得经验离散的概率分布;计算其entropy 并通过除以理论最大值(N 个 bin 的 log N)进行归一化。每个 bin 中像素数相同的图像将获得 1 分;任何纯色都得 0 分。

当然也有病态的情况,例如仅包含两个不同像素值的图像,这些像素值恰好位于 bin 之间的边界上。这样的图像将得分 log 2/log N,并且该想法可以扩展到在共享角落相遇的 8 个 bin。向图像(或与原始图像合并的副本)添加少量噪点可能是值得的,以减少此类异常的可能性。

要考虑全红色图像(稍微)比全灰色图像更彩色,您可以在直方图中引入灰色的“测试模式”(并调整熵的归一化以考虑增加的最小值和减少最大值)。测试图案的大小应与图像相当。

【讨论】:

    猜你喜欢
    • 2017-11-04
    • 2017-11-10
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    相关资源
    最近更新 更多