¿Cómo comparar si el color de un píxel es similar a otro

MmMm SSSS:

Estoy haciendo un programa que automáticamente juega un juego llamado aturdir. Actualmente, tengo todos los componentes establecidos, sin embargo, estoy teniendo la determinación de si el bloque es de color sobre el área que lo golpeó en.

He intentado utilizar la fórmula de la distancia que se proporcionó en un hilo que tenía una pregunta similar, pero estoy recibiendo constantemente resultados erróneos.

boolean similarTo(Color c,Color v){
        double distance = Math.sqrt((c.getRed() - v.getRed())*(c.getRed() - v.getRed()) + (c.getGreen() - v.getGreen())*(c.getGreen() - v.getGreen()) + (c.getBlue() - v.getBlue())*(c.getBlue() - v.getBlue()));
//      double average1 = c.getRed()+c.getBlue()+c.getGreen();
//      double average2 = v.getRed()+v.getBlue()+v.getGreen();

        if(distance < 100 ){
            return true;
        }else{
            return false;
        }
    }

El uso de este se debe presionar cuando el píxel llega a ser similar, pero los resultados siempre difieren, como se dice que son los mismos todo el tiempo, de no actualizar.

Marco R. :

Su problema puede deberse a la utilización de la equivocada Colorclase. Puede encontrar 2 Colorclases de JDK:

  1. java.awt.Color: ¿Qué expone métodos getRed, getGreen, GetBlue que regresan intvalores entre 0-255 .
  2. javafx.scene.paint.Color: ¿Qué expone métodos getRed, getGreen, GetBlue que regresan doublevalores entre 0-1 .

Si está utilizando javafx.scene.paint.Colorla distancia nunca será mayor que 1,73. Tiene que usar java.awt.Colorpara tener una distancia de 0 - 441,67

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=187556&siteId=1
Recomendado
Clasificación