Comparaison des couleurs et identifiant la correspondance la plus proche dans un tableau est une tâche courante dans les applications graphiques. Dans cet article, nous explorerons trois méthodes différentes pour y parvenir:
1. Comparaison Hue uniquement:
Cette méthode ne considère que les teintes des couleurs, ignorant la saturation et la luminosité. La distance de teinte est calculée à l'aide d'une soustraction simple, et la teinte la plus proche est déterminée en trouvant la distance minimale.
2. Distance RGB:
Cette méthode mesure la distance directe entre les valeurs RGB des couleurs. La différence de couleur est calculée comme une distance euclidienne dans l'espace RVB, et la couleur la plus proche se trouve en minimisant cette différence.
3. Thembe pondérée, saturation et comparaison de luminosité:
Cette méthode combine la teinte, la saturation et la luminosité de manière pondérée. La luminosité perçue est calculée et un nombre de couleurs est calculé en fonction de la saturation et de la luminosité. La couleur la plus proche est déterminée en minimisant la somme pondérée de la différence de couleur et de la distance de la teinte.
int closerstColor1 (lister
// Hue-Only Comparison int closestColor1(Listcolors, 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); } // RGB Distance Comparison int closestColor2(List colors, Color target) { var colorDiffs = colors.Select(n => ColorDiff(n, target)).Min(n => n); return colors.FindIndex(n => ColorDiff(n, target) == colorDiffs); } // Weighted Hue, Saturation, and Brightness Comparison int closestColor3(List colors, Color target) { float hue1 = target.GetHue(); var num1 = ColorNum(target); var diffs = colors.Select(n => Math.Abs(ColorNum(n) - num1) getHueDistance(n.GetHue(), hue1)); var diffMin = diffs.Min(x => x); return diffs.ToList().FindIndex(n => n == diffMin); }
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3