gpt4 book ai didi

python - 用于比较 Cielab 颜色的 Delta E 函数返回值的区间是多少?

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:02 36 4
gpt4 key购买 nike

我正在尝试使用来自 python colormath(delta_e_cie2000 等)的 Delta E 函数将 Cielab 颜色的比较值转换为概率分布。问题是,我找不到任何关于 Delta E 函数的引用,告诉我什么区间 [min, max],返回值是元素。

例如两种 SRGB 颜色红色和蓝色的结果:

c1 = convert_color(convert_color(sRGBColor(1,0,0), XYZColor), LabColor)
c2 = convert_color(convert_color(sRGBColor(0,0,1), XYZColor), LabColor)
print(delta_e_cie2000(c1, c2))

是 52.880。

如果间隔是 [0,100],我可以除以 100 以将其标准化为 [0,1] 之间的数字。

有人知道引用资料或知道如何确定最小值和最大值吗?我不想通过随机化颜色和尝试找到阈值来迭代测试它。

最佳答案

CIE Lab ΔE 没有定义的工作范围,最大理论范围也取决于您选择的 RGB 色彩空间。

但是,需要牢记的一点是,CIE Lab ΔE 并非设计用于测量超过特定 CIE Lab ΔE 量级的色差。 10-20 ΔE 被认为是,可能是可用的最大值,超过此值后尝试量化差异就毫无意义了。您最终可能会得到一对在空间上比另一对具有比后者更小的 ΔE 的空间分离度。

以下是一些相关的出版物:

根据您的评论,您似乎对准指标是否产生有意义的结果不太感兴趣。对于一般情况,您可以执行以下操作:

  • 对 Spectral Locus 外表面进行采样,即获取一些 CIE XYZ 色彩空间坐标。
  • 生成所有对组合。
  • 转为 CIE 实验室。
  • 计算 CIE Lab ΔE 并保留最大值。

这是一个如何用 Colour 做到这一点的例子:

import colour
import itertools
import numpy as np

XYZ = colour.volume.XYZ_outer_surface()

combinations = colour.XYZ_to_Lab(np.array(list(itertools.combinations(XYZ, 2))))

delta_E = colour.delta_E(combinations[:, 0, :], combinations[:, 1, :])

print(np.max(delta_E))

# 144.998329679

对于特定的 sRGB 情况,您可以按如下方式对转换为 CIE XYZ 色彩空间坐标的 sRGB 立方体进行采样:

import colour
import colour.plotting
import itertools
import numpy as np

RGB = colour.plotting.volume.cube(
width_segments=10, height_segments=10, depth_segments=10)
XYZ = colour.sRGB_to_XYZ(RGB, apply_decoding_cctf=False)

combinations = colour.XYZ_to_Lab(np.array(list(itertools.combinations(XYZ, 2))))

delta_E = colour.delta_E(combinations[:, 0, :], combinations[:, 1, :])

print(np.max(delta_E))

# 119.022907418

如果您想现场试用,这里有一个 Google Colab 笔记本:https://colab.research.google.com/drive/1nxlq-QIhByrGiF24oZHFX7dNymG79BYg#scrollTo=IkdwsUvzob6h

关于python - 用于比较 Cielab 颜色的 Delta E 函数返回值的区间是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58027500/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com