gpt4 book ai didi

c++ - 寻找最接近的 RGB 颜色

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:42 24 4
gpt4 key购买 nike

我被告知要使用距离公式来查找颜色是否与另一个匹配,所以我有,

struct RGB_SPACE
{
float R, G, B;
};

RGB_SPACE p = (255, 164, 32); //pre-defined
RGB_SPACE u = (192, 35, 111); //user defined

long distance = static_cast<long>(pow(u.R - p.R, 2) + pow(u.G - p.G, 2) + pow(u.B - p.B, 2));

这只给出了一个距离,但我怎么知道颜色是否与用户定义的至少匹配了 25%?

我不确定,但我想检查每个颜色值以查看差异是否为 25%。例如。

float R = u.R/p.R * 100;
float G = u.G/p.G * 100;
float B = u.B/p.B * 100;

if (R <= 25 && G <= 25 && B <= 25)
{
//color matches with pre-defined color.
}

最佳答案

我建议不要检查 RGB 空间。如果您有 (0,0,0) 和 (100,0,0),根据 cababungas 公式(以及根据认为太多颜色相似的 casablanca 公式),它们是相似的。然而,它们看起来很不一样。

HSL and HSV颜色模型基于人类对颜色的解释,然后您可以轻松地指定相互独立的色调、饱和度和亮度的距离(取决于“相似”在您的情况下的含义)。

关于c++ - 寻找最接近的 RGB 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4171397/

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