go - golang 中的 math.Pow 是否适合这个公式?

标签 go

公式:

C1*B+C2B^2+C3*G+C4*G*B+C5*G*B^2+C6*G^2+
C7*G^2*B+C8*R+C9*R*B+C10*R*B^2+C11*R*G+
C12*R*G*B+C13*R*G^2+C14*R^2+C15*R^2*B+
C16*R^2*G+C17*1+C18*R^3+C19*G^3+C20*B^3

开始:

var C1 = -0.0343
var C2 = 0.4062
...snipped

C1*B + C2*math.Pow(B, 2) + C3*G + C4*G*B +
C5*G*math.Pow(B, 2) + C6*G*math.Pow(G, 2) +
C7*math.Pow(G, 2)*B + C8*R + C9*R*B +
C10*R*math.Pow(B, 2) + C11*R*G + C12*R*G*B +
C13*R*math.Pow(G, 2) + C14*math.Pow(R, 2) +
C15*math.Pow(R, 2)*B + C16*math.Pow(R, 2)*G +
C17*1 + C18*math.Pow(R, 3) + C19*math.Pow(G, 3) +
C20*math.Pow(B, 3)

我的所有代码都有效,但我看到的值大于 1,我应该期望值在 01 范围内>,所以我假设 math.Pow 不是我应该使用的。 Go 新手,非常感谢任何帮助。

最佳答案

您的 RGB 值与公式要求的范围不同。此公式适用于 0(最暗)到 1(最亮)的数学正常范围内的 R、G 和 B 分量,而不是通常的计算机范围 0(最暗)到 255(最亮)。

在运行公式之前将 RGB 除以 255.0。

关于go - golang 中的 math.Pow 是否适合这个公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52273325/

相关文章:

data-structures - 如何在 Go 中实现队列?

parsing - 如何将多个数据对象传递给 Golang 中的 HTML 模板

go - 如何在 GoLang 中分离编码的 ecdsa 公钥和私钥

string - 如何 fmt.Printf 带有千位逗号的整数

go - Golang 中的运行时常量

string - 使用 go 遍历批量字符串中的行

go - 是否有更有效的方法来处理此函数中的字符串转义?

Azure Blob Go lib使用TokenCredential访问blob api总是返回错误

go - 尝试格式化API响应,但我不知道如何

mongodb - 将 Mongo 查询转换为 Mgo 查询