gpt4 book ai didi

language-agnostic - 给定 R、G、B 三元组和因子 F,我如何计算颜色的 “watermark” 版本?

转载 作者:行者123 更新时间:2023-12-04 08:59:38 25 4
gpt4 key购买 nike

我有一个 (R, G, B) 三元组,其中每种颜色都在 0.0 和 1.0 之间。给定一个因子 F(0.0 表示原始颜色,1.0 表示白色),我想计算一个新的三元组,即颜色的“水印”版本。

我使用以下表达式(伪代码):

for each c in R, G, B:
new_c ← c + F × (1 - c)

这会产生一些看起来不错的东西,但我知道这会引入颜色色调的偏差(检查转换前后的 HSV 等价物),我不知道这是否符合预期。

是否有“标准”(带引号或不带引号)算法来计算颜色的“水印”版本?如果有,是哪一个?如果不是,您能告诉我还有哪些其他算法具有相同的效果?

最佳答案

实际上这看起来应该给出正确的色调,减去算术舍入误差的小变化。

这当然是合理的,简单的就实现了水印效果。我不知道任何其他“标准”的,有几种方法可以做到这一点。

备选方案是:
与白色混合,但在 F 上以非线性方式混合,例如new_c = c + sqrt(F)*(1-c),或者您可以使用其他非线性函数 - 它可能有助于水印看起来或多或少“平坦”。

您可以通过执行以下操作更有效地完成此操作(其中 F 取范围 0..INF):

new_c = 1 - (1-c)/pow(2, F)

对于真实像素值 (0..255) 这将转换为:

new_c = 255 - (255-c)>>F

不仅在整数运算中相当快,而且您可以并行地在 32b 整数中执行此操作。

关于language-agnostic - 给定 R、G、B 三元组和因子 F,我如何计算颜色的 “watermark” 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4024288/

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