El color más cercano coincide en una matriz
dada una matriz de colores y un objeto de color separado, la tarea es determinar la coincidencia más cercana dentro de la matriz al color dado. La distancia de color es un concepto subjetivo, y hay varias formas de cuantificarlo.
solo el método de Hues
este método se centra únicamente en los tonos de los colores, ignorando la saturación y el brillo. Calcula la diferencia absoluta entre los tonos del color candidato y el color dado. Se selecciona el color candidato con la diferencia de tono más pequeña.
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); }
Método de espacio RGB
Este método mide la distancia directa entre los colores en el espacio RGB. Calcula la distancia euclidiana entre los componentes R, G y B del color candidato y el color dado. Se selecciona el color candidato con la distancia más pequeña.
int closestColor2(Listcolors, Color target) { var colorDiffs = colors.Select(n => ColorDiff(n, target)).Min(n => n); return colors.FindIndex(n => ColorDiff(n, target) == colorDiffs); }
Método pesado
Este método asigna pesos a los componentes de tono, saturación y brillo de los colores. Calcula una distancia ponderada combinando la diferencia de tono con una combinación ponderada de saturación y brillo. Se selecciona el color candidato con la distancia ponderada más pequeña.
int closestColor3(Listcolors, 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); }
Según sus requisitos, puede elegir el método que mejor se adapte a su aplicación.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3