アレイで最も近い色の一致
の色と個別の色のオブジェクトを与えられます。色の距離は主観的な概念であり、それを定量化するさまざまな方法があります。候補の色の色相と与えられた色の絶対的な違いを計算します。最小の色合いの違いがある候補の色が選択されています。 { 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(Listweighted methodcolors, 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); }
この方法は、色の色合い、飽和、および明るさ成分にウェイトを割り当てます。色相の違いを飽和と明るさの加重組み合わせと組み合わせることにより、加重距離を計算します。最小の加重距離の候補色が選択されています。 { 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