comparando cores e identificar a correspondência mais próxima em uma matriz é uma tarefa comum em aplicativos gráficos. Neste artigo, exploraremos três métodos diferentes para realizar isso:
1. Comparação somente Hue:
Este método considera apenas os tons das cores, ignorando a saturação e o brilho. A distância do tom é calculada usando uma subtração simples, e a tonalidade mais próxima é determinada pela localização da distância mínima.
2. RGB Distância:
Este método mede a distância direta entre os valores RGB das cores. A diferença de cor é calculada como uma distância euclidiana no espaço RGB, e a cor mais próxima é encontrada minimizando essa diferença.
3. Comparação de matiz ponderado, saturação e brilho:
Este método combina matiz, saturação e brilho de maneira ponderada. O brilho percebido é calculado e um número de cores é calculado com base na saturação e brilho. A cor mais próxima é determinada minimizando a soma ponderada da diferença de cor e a distância da matiz.
int rosestColor1 (list
// brilho colorido como percebido: float getbrightness (cor c) => (c.r * 0,299f c.g * 0,587f c.b * 0,114f) / 256f; // distância entre dois tons: Float Gethedistance (Float Hue1, Float Hue2) => Math.abs (Hue1 - Hue2)> 180? 360 - Math.abs (Hue1 - Hue2): Math.abs (Hue1 - Hue2); // pesado por saturação e brilho: float colornum (cor c) => c.getSaturation () * fatorest getbrightness (c) * fatorbri; // Distância no espaço RGB: int colordiff (color c1, cor c2) => (int) math.sqrt ((c1.r - c2.r) * (c1.r - c2.r) (c1.g - c2.g) * (c1.g - c2.g) (c1.b - c2.b) (c1.b - c2.b); A métrica depende do aplicativo específico. Se a matiz é a principal consideração, a comparação somente para matiz é suficiente. Para correspondência mais geral de cores, a distância RGB ou os métodos de comparação de matiz, saturação e brilho ponderados fornecem resultados mais precisos.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3