Ich versuche zu testen, ob ein Pixel blau ist oder nicht.So definieren Sie einen klaren Bereich für die Pixelfarbe
Zum Beispiel: Die blaue Farbe ist in RGB definiert als rgb (0,0,255). Typische Farbtiefen sind 8 Bit (256 Farben), 16 Bit (ca. 65.000), 24 Bit (ca. 16 Millionen) und 32 Bit (über 4 Milliarden verschiedene Farben). Es gibt also deutlich mehr als 1 Blauton.
Wie definiere ich den Bereich der blauen Farbe und Test für jedes Pixel, wenn es blau ist oder nicht? Und was muss ich bei den verschiedenen Tiefen beachten?
bisher Mein Code ist:
BufferedImage image = ImageIO.read(file);
// Getting pixel color by position x and y
for (int i = 0; i < image.getWidth(); i++) {
for (int j = 0; j < image.getHeight(); j++) {
int clr = image.getRGB(i, j);
Anmerkung 1:
http://www.workwithcolor.com/cyan-blue-color-hue-range-01.htm
Das Problem hier ist, was zwischen den Farbstufen ist in?
Ein Beispiel wäre großartig.
Anmerkung 2:
ich gerade einen Vortrag über das Thema fand ich interessiert bin:
Auf Seite 13 wir die Definition von rot sehen . Aber wie können Sie die anderen Farben definieren?
Zuerst dachte ich, Sie könnten nur für RGB-Farben Bereich einstellen, aber das wird nicht funktionieren. Wie Sie auf der Farbtabelle sehen können: http://2.bp.blogspot.com/_DmvFk3aIxDI/S9Kbb5BOjEI/AAAAAAAAADk/MVrj60t6ec8/s1600/cc.png blau beginnt bei # 000066 und # 66FFFF ist immer noch blau. Aber nicht alles dazwischen ist blau. –
Ich fand dies: http://stackoverflow.com/questions/30361786/how-to-tell-visible-color-from-rgb-values helfen sollte. –
Nein, tut es nicht! Wenn Sie den Wert von Blau in HUE wählen, können Sie die Parameter Sättigung und Wert/Helligkeit so ändern, dass Sie kein Blau mehr sehen. Versuchen Sie es hier: http://colorizer.org/ –