Farbbereich angeben

programmierer12

Bekanntes Mitglied
Hallo Zusammen!
Ich habe da mal ne Frage : Wie gebe ich in Java einen Farbbereich an?
Ich wollte nur mittels einer if-Anweisung überprüfen ob die Farbe eines
Pixels inerhalb eines bestimmten Farbbereichs liegt.
mein Ansatz :
Java:
if (((c.getRed() >= 0) && (c.getBlue() >= 0) && (c.getGreen() >= 0)) && ((c.getRed() <= 189) && (c.getBlue() <= 189) && (c.getGreen() <= 189))) {
					
					System.out.println("schwarz und grau");
							
				}
Jedoch funktioniert diese Methode nicht, weil auch z.B. der Farbcode 0-0-46
zutrifft!!!;(
Wie kann ich das am einfachsten lösen, dass die Farben schwarz bis hellgrau zutreffen
alle anderen jedoch nicht?

MFG
programmierer12
 

diggaa1984

Top Contributor
Ich sehe gerade .. schwarz bis hellgrau .. du könntest auch prüfen ob die Werte alle idenetisch sind, dann hast du auf jedenfall nur die Graustufen drin. Wenn noch eine Abweichung um vielleicht 10 oder 20 erwünscht ist, könnte man das bestimmt auch einbauen:

zB:
alle 0
alle 130
alle 255

oder:
40 50 30
120 125 115

ist ein wenig komplexer, aber da ist die Frage was dir lieber ist
 

programmierer12

Bekanntes Mitglied
Was meinst du mit
prüfen ob die Werte alle idenetisch sind
? Ich verstehe jetzt gerade nicht welche Werte identisch sind.
Außerdem habe ich schon einmal, mit dem Opertor || getrennt, alle Farbcodes in die
If-Anweisung geschrieben aber da hat es nicht wirklich geklappt, aus welchem
Grund auch immer!
 

diggaa1984

Top Contributor
Wenn die rot, grün, blau - Werte alle gleich sind hast du auf jeden Fall die Grauwerte abgedeckt.
von 0,0,0 - 255,255,255.

Dann kannst du auch statt 3 Werte einzulesen genau einen Wert einlesen, der für alle Farben gesetzt wird und bist auf der sicheren Seite. Soll es nur Schwarz bis Hellgrau sein, kannst du diese eine Eingabe auf den Bereich 0-200 oder so überprüfen.

Außerdem habe ich schon einmal, mit dem Opertor || getrennt, alle Farbcodes in die
If-Anweisung geschrieben aber da hat es nicht wirklich geklappt, aus welchem
Grund auch immer!

Die Farbcodes liegen damit zwar im Bereich 0 - x aber in Relation zueinander stehen sie nicht, dass heisst rot kann 0 sein und blau hat den Maximumwert. Das wird alles andere als Grau
 
Zuletzt bearbeitet:

Ikaron

Bekanntes Mitglied
Wie wär's damit?

Java:
private static final int maximaleAbweichung = 10;
// In Methode
Color c = ...;
int red = c.getRed();
int green = c.getGreen();
int blue = c.getBlue();

int durchschnitt = (red + green + blue) / 3;
if(Math.abs(red - durchschnitt) < maximaleAbweichung && Math.abs(green - durchschnitt) < maximaleAbweichung && Math.abs(blue - durchschnitt) < maximaleAbweichung) {

    System.out.println("Schwarz/Grau/Weiß");
}
 

Ikaron

Bekanntes Mitglied
Achso jetzt kommen wir der Sache schon näher!

Das heißt wenn alle drei Werte gleich sind ist die Farbe sicherlich entweder schwarz weiß oder grau?

Ja, wenn Rot-, Grün- und Blauanteil (annähernd) gleich sind, ist die Farbe (annähernd) ungesättigt. Du weißt ja sicher, dass 0xffffff weiß ist => 255 rot, 255 grün, 255 blau, und dass 0x000000 schwarz ist => 0 rot, 0 grün, 0 blau. Alles dazwischen sind die Graustufen.
 

programmierer12

Bekanntes Mitglied
Was muss ich genau im Code schreiben wenn ich überprüfen will ob alle Werte gleich sind?
meine Idee:
Java:
if (c.getBlue() == c.getGreen() && c.getBlue() == c.getRed() && c.getGreen() == c.getRed())
Funktioniert aber nicht!!!!!
 

Ikaron

Bekanntes Mitglied
Probier mal meinen Code aus, ist auf Seite 1. Der sollte so funktionieren und unterstützt eine frei einstellbare maximale Abweichung - Denn 1/0/0 sieht ja für uns auch fast schwarz aus => Kann man noch dazu zählen.
 

programmierer12

Bekanntes Mitglied
Also ich wollte das mal probieren :
Java:
if (c.getBlue() == c.getGreen() && c.getBlue() == c.getRed() && c.getGreen() == c.getRed())
Hat aber nicht funktioniert!!
Wie mache ich das richtig wenn ich überprüfen will ob alle Werte gleich sind?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
ohneInformatik; Trockentest Algorithmus, mathematischen Zusammenhang angeben Java Basics - Anfänger-Themen 3
melisax Alle Möglichkeiten eines Wortes angeben Java Basics - Anfänger-Themen 3
J Netzwerkadresse im Filechooser angeben Java Basics - Anfänger-Themen 9
R speicherort Mac pfad angeben Java Basics - Anfänger-Themen 3
E Pfade eines Baums angeben ohne Rekursion Java Basics - Anfänger-Themen 20
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
MaxG. Input/Output Dateipfad angeben Java Basics - Anfänger-Themen 2
R Pfad angeben Java Basics - Anfänger-Themen 7
B Problem beim Angeben einer Eingabe Java Basics - Anfänger-Themen 12
X Erste Schritte Zeilenbereich aus Array angeben Java Basics - Anfänger-Themen 1
L Wertebereich if-Satz angeben (z.B: Benzinverbrauch 51 <=75<) Java Basics - Anfänger-Themen 1
A Interface in Collection (Liste) angeben Java Basics - Anfänger-Themen 2
C Erste Schritte Bereich angeben bzw Fehler Suche Java Basics - Anfänger-Themen 6
C Pfad für Bilder angeben Java Basics - Anfänger-Themen 11
K Best Practice Date in einem Konstruktor angeben Java Basics - Anfänger-Themen 5
C einen wert aus einer arraylist in einem jField angeben Java Basics - Anfänger-Themen 2
Helgon Pfad richtig angeben Java Basics - Anfänger-Themen 7
M kurze frage: Ohne index.of position von string angeben Java Basics - Anfänger-Themen 16
C Array in Spalten angeben Java Basics - Anfänger-Themen 44
S Pfad für Datei falsch - wie richtig angeben? Java Basics - Anfänger-Themen 7
K Datentypen Klassenname per String angeben und .class bekommen Java Basics - Anfänger-Themen 6
0 Den Pfad für das Bild angeben Java Basics - Anfänger-Themen 9
H Expliziten Namen angeben Java Basics - Anfänger-Themen 2
R funktion und o-notation angeben Java Basics - Anfänger-Themen 2
S Image-Datei mit relativem Pfad angeben Java Basics - Anfänger-Themen 3
loadbrain relatives Verzeichnis angeben Java Basics - Anfänger-Themen 3
G Verzeichnispfad als String angeben? Java Basics - Anfänger-Themen 2
G Exel? POI? was mit import angeben? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben