gpt4 book ai didi

swift - 计算红色的色调角度范围

转载 作者:可可西里 更新时间:2023-11-01 01:27:59 25 4
gpt4 key购买 nike

我正在尝试正确计算色调角度范围。给定输入默认色调 120 和阈值 20 范围在 100 - 140 之间(是的,我知道 - 复杂的数学) .

现在在应用程序中,过滤图像时,我可以检查给定像素是否落在该范围内:

let inputHue = 120
let threshold = 20

let minHue = inputHue - threshold // 100
let maxHue = inputHue + threshold // 140

if (pixelHue > minHue && pixelHue < maxHue) {
// do something
}

现在的问题是红色范围,其中最饱和的红色在色轮上的 0/360 处。给定 10 的输入色调,minHue 现在是 -10(阈值为 20)和 maxHue30。由于 minHue 的负值,条件失败:

let pixelHue = 355 // this falls into a valid red range I want to get
let minHue = -10
let maxHue = 30

if (pixelHue > minHue && pixelHue < maxHue) {
// do something
}

有谁知道如何解决这个色轮问题?我正在尝试开发适用于任何给定输入色调(不仅是红色)的通用解决方案。

提前致谢。

最佳答案

色调应考虑为 360 模。因此红色的范围是 0-30 和 350-360。

现在你的值是355通过因为(355>350 AND 355<30) OR (350>30 AND (355>350 OR 355<30)) .

这里的关键位在第一个 OR 之后开始。在正常的算术中,你检查下限和上限,你必须通过这两个测试。但在模运算中,如果下限高于上限,则范围环绕在 0 附近,您只需通过两个测试之一即可。

回顾一下:(hue>min AND hue<max) OR (min>max AND (hue>min OR hue<max))

关于swift - 计算红色的色调角度范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40505881/

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