- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用来自 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 的空间分离度。
以下是一些相关的出版物:
根据您的评论,您似乎对准指标是否产生有意义的结果不太感兴趣。对于一般情况,您可以执行以下操作:
这是一个如何用 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/
我想使用 spark sql 在 Delta 表中添加一些列,但它显示如下错误: ALTER ADD COLUMNS does not support datasource table with ty
在增量表中存储我的数据帧时,为我的数据帧寻找有效的分区策略。 我当前的数据帧 1.5000.000 rowa 将数据从数据帧移动到增量表需要 3.5 小时。 为了寻找更有效的写作方式,我决定尝试将我的
我想知道,是否可以更新增量表分区列的“值”? 该表按特定列分区,现在我想更新该特定列的值。我可以这样做吗? (在 slack 上找到) 最佳答案 使用 replaceWhere 选项。 引用官方文档
考虑排序数组a: a = np.array([0, 2, 3, 4, 5, 10, 11, 11, 14, 19, 20, 20]) 如果我指定左右增量, delta_left, delta_righ
当我们运行 VACUUM 命令时,它是遍历每个 parquet 文件并删除每条记录的旧版本,还是保留所有 parquet 文件,即使它有一个最新版本的记录?压实呢?这有什么不同吗? 最佳答案 Vacu
如果我想使用 delta time-travel 来比较两个版本以获得类似于 CDC 的更改,该怎么做? 我可以看到两个选项: 在 SQL 中,您有 EXCEPT/MINUS 查询,您可以将所有数据与
我想在 python 中对给定的输入和输出数据进行敏感性分析。输入参数的设计是基于拉丁超立方体的,所以我决定使用SALib的delta模块。我找不到一些文档,返回参数 delta、delta_conf
我正在尝试在 CUDA 中实现前馈神经网络。到目前为止,我用过 Jeff Heaton's YouTube videos作为推断算法和实现它们的指南。我不清楚一件事: 希顿在他的 Gradient C
我正在阅读下面关于 First Search Program - Artificial Intelligence for Robotics 的代码,我对下面这两行的工作稍作停留: x2 = x+del
我将一年以上的行作为增量表归档到 ADLSv2 中,当需要报告该数据时,我需要将归档数据与本地数据库中现有的一些表连接起来。有没有一种方法可以在不从云中重新水化或将数据水化到云的情况下进行连接? 最佳
Delta Lake 在哪里存储表元数据信息。我在我的独立机器上使用 spark 2.6(不是 Databricks)。我的假设是,如果我重新启动 spark,将删除在 delta lake spar
我按照@提到的步骤操作:http://wiki.apache.org/solr/DataImportHandler 我还尝试了来自 stackoverflow 的其他解决方案,但仍然无法正常工作。 问
是否可以在本地实现三角洲湖?如果是,需要安装什么软件/工具? 我正在尝试在内部实现一个 delta 湖来分析一些日志文件和数据库表。我当前的机器装有 ubuntu,apache spark。不确定还需
Delta Lake 每 10 个版本自动创建一个检查点。有没有办法手动创建检查点? 最佳答案 import org.apache.spark.sql.delta.DeltaLog DeltaLog.
虽然分析似乎无法避免存储到“delta”的值不被读取...我的循环的哪一部分不起作用,为什么? #include #include int main() { float a, b, c;
不幸的是,我认为错误并不是让他自动更新了delta 我在“数据库”中有这个表插件 # in MySQL CREATE TABLE sph_counter ( counter_id INTEGER PR
是否可以使用 Delta Live Tables 来执行增量批处理? 现在,我相信这段代码将始终在运行管道时加载目录中的所有可用数据, CREATE LIVE TABLE lendingclub_ra
我有一个包含数百万行和多个不同类型的列的增量表,包括。嵌套结构。我想在运行时创建增量表的空 DataFrame 克隆 - 即相同的模式,没有行。 我可以读取架构而不读取表的任何内容吗(这样我就可以基于
我有一些历史期权价格,我正在尝试确定隐含的 delta。 我有: 1) strike 2) call/put 3) stock price 4) dividend 5) interest rate 6
梯度下降和 delta 规则有什么区别? 最佳答案 没有数学:delta 规则使用梯度下降来最小化感知器网络权重的误差。 梯度下降是一种通用算法,它逐渐改变参数向量以最小化目标函数。它通过向阻力最小的
我是一名优秀的程序员,十分优秀!