gpt4 book ai didi

Swift float 计算与其他语言不同

转载 作者:行者123 更新时间:2023-11-30 10:51:26 25 4
gpt4 key购买 nike

我正在尝试在 Swift 中将 RGB 值转换为 YUV 值。支持 RGB 值为 (185, 206, 201)。转换代码:

let yExp  = simd_float3(0.299, 0.587, 0.114)
let cbExp = simd_float3(-0.16874, -0.33126, 0.5)
let crExp = simd_float3(0.5, -0.41869, -0.08131)

let red = Float(185)
let green = Float(206)
let blue = Float(201)
let pixel = simd_float3(red, green, blue)

let y = simd_dot(yExp, pixel)
let cr = simd_dot(crExp, pixel) + 128.0
let cb = simd_dot(cbExp, pixel) + 128.0

cr 在 Swift 中是 129.043549。但是,当我使用 C# 或 Java 时,结果是 129.043533。

如何在 Swift 中获得与 C# 和 Java 相同的结果?

最佳答案

谢谢大家。我找到了解决方案,但它可能不是完美的。

let yExp  = simd_double3(0.299, 0.587, 0.114)
let cbExp = simd_double3(-0.16874, -0.33126, 0.5)
let crExp = simd_double3(0.5, -0.41869, -0.08131)

let red = Double(185)
let green = Double(206)
let blue = Double(201)
let pixel = simd_double3(red, green, blue)

let y = Float(simd_dot(yExp, pixel))
let cr = Float(simd_dot(crExp, pixel) + 128.0)
let cb = Float(simd_dot(cbExp, pixel) + 128.0)

cr 从 double 转换为 float 时为 129.04353。

关于Swift float 计算与其他语言不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54436203/

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