「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > カラーアレイで最も近い色の一致を見つける方法は?

カラーアレイで最も近い色の一致を見つける方法は?

2025-05-03に投稿されました
ブラウズ:614

How Can I Find the Closest Color Match in a Color Array?

アレイで最も近い色の一致

の色と個別の色のオブジェクトを与えられます。色の距離は主観的な概念であり、それを定量化するさまざまな方法があります。候補の色の色相と与えられた色の絶対的な違いを計算します。最小の色合いの違いがある候補の色が選択されています。 { var hue1 = target.gethue(); var diffs = colors.select(n => gethuedistance(n.gethue()、hue1)); var diffmin = diffs.min(n => n); return diffs.tolist()。findindex(n => n == diffmin); }

rgbスペースメソッド

この方法は、RGB空間の色間の直接距離を測定します。候補の色と与えられた色のR、G、およびB成分の間のユークリッド距離を計算します。最小距離の候補色が選択されています。 { var colordiffs = colors.select(n => colordiff(n、ターゲット))。min(n => n); colors.findindex(n => colordiff(n、ターゲット)== colordiffs); }

int closestColor1(List colors, Color target)
{
    var hue1 = target.GetHue();
    var diffs = colors.Select(n => getHueDistance(n.GetHue(), hue1));
    var diffMin = diffs.Min(n => n);
    return diffs.ToList().FindIndex(n => n == diffMin);
}
weighted method

この方法は、色の色合い、飽和、および明るさ成分にウェイトを割り当てます。色相の違いを飽和と明るさの加重組み合わせと組み合わせることにより、加重距離を計算します。最小の加重距離の候補色が選択されています。 { float hue1 = target.gethue(); var num1 = colornum(ターゲット); var diffs = colors.select(n => math.abs(colornum(n)-num1)gethedistance(n.gethue()、hue1)); var diffmin = diffs.min(x => x); return diffs.tolist()。findindex(n => n == diffmin); }

要件に基づいて、アプリケーションに最適な方法を選択できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3