Gruppieren von RGB-Farben für NXT-Ziegel
-
12-12-2019 - |
Frage
Ich versuche, eine Erweiterung in NetLogo für NXT-Ziegelsteine zu schreiben.Um den Ziegelstein zu verbinden, benutze ich Lejos.Ich habe ein Problem mit dem Farbsensor.Ich möchte eine einfache Methode schreiben, die Sensorfarbe als Zahl wie gelb: 1, rot: 2 usw. zurückgibt, aber Sensormotor gibt immer verschiedene RGB-Farben auf derselben Oberfläche zurück.Zum Beispiel setze ich es über ein gelbes Papier, RGB-Farben sind: [236 189 104], [247 202 108]. Wenn es einzigartige RGB-Nummern für dieselben Oberflächenfarben zurückging, würde ich sie entsprechend der RGB-Farbbereich klassifizieren und gebenEine eindeutige Nummer für jede Farbe.Hast du eine Ahnung, wie ich es tun kann?Es wird auch nicht auf verschiedenen Oberflächen ausgeführt.Nur das für meine Papierfarben (gelb, blau, grün) reicht für mich.Danke.
Lösung
Wenn ich richtig verstanden habe, was Sie meinen, die Methode java.awt.color.rgbtohsb könnte Ihnen helfen.Java-Code wie folgt:
generasacodicetagpre. (wobei red
, green
und blue
Variablen sind, die das Sensorergebnis enthalten)
... gibt Ihnen den "Farbton" Ihrer Farbe als float
zwischen 0 und 1, der ausreichend sein sollte, um zu sehen, ob es sich um einen Farbton von Gelb, Blau, Grün, oder etwas anderes handelt, wenn Sie geeignete Bereiche definieren.Das sollte
... aber nimm nicht mein Wort dafür!Sie sollten experimentieren, um zu sehen, in welchem Reichweiten Sie Ihren Sensor aufbleiben, wenn Sie über gelbes Papier usw.