moin
ich hab da nen problem mit dem befehl getRGB
also ich habe ein grauwertbild das ich analysieren will ...
dafür geh ich per doppelter for schleife jedes einzelne pixel durch und lasse mir den grauwert des pixels zurück geben ... das ergebnis stimmt aber nicht mit der aktuellen farbe überein ...
also was ich eigentlich machen will: ich geb der funktion ne binärschwelle mit und wenn die pixel dunkler sind sollen sie schwarz dargestellt werden alles andere soll weis dargestellt werden...
im saveImg is halt das bild als BufferedImage geladen (aus einem .bmp)
das problem: die system.out funktion sagt mir was von wegen das die pixel hätten ne farbe von z.b. 121 in wirklichkeit (per paint farbtabelle getestet) ist die farbe aber z.b. 66
wieso ist das so bzw wie kann ich das beheben?
code sieht so aus:
mfg Kala
ich hab da nen problem mit dem befehl getRGB
also ich habe ein grauwertbild das ich analysieren will ...
dafür geh ich per doppelter for schleife jedes einzelne pixel durch und lasse mir den grauwert des pixels zurück geben ... das ergebnis stimmt aber nicht mit der aktuellen farbe überein ...
also was ich eigentlich machen will: ich geb der funktion ne binärschwelle mit und wenn die pixel dunkler sind sollen sie schwarz dargestellt werden alles andere soll weis dargestellt werden...
im saveImg is halt das bild als BufferedImage geladen (aus einem .bmp)
das problem: die system.out funktion sagt mir was von wegen das die pixel hätten ne farbe von z.b. 121 in wirklichkeit (per paint farbtabelle getestet) ist die farbe aber z.b. 66
wieso ist das so bzw wie kann ich das beheben?
code sieht so aus:
Code:
for(int y=0; y<saveImg.getHeight(); y++){
for(int x=0; x<saveImg.getWidth(); x++){
Color c=new Color(saveImg.getRGB(x, y));
System.out.println(x+" "+y+" C2:"+c.getBlue()+" "+c.getGreen()+" "+c.getRed()+" "+c.getAlpha());
if(c.getBlue()<=binschwelle){
int rgb=Color.black.getRGB();
erg.setRGB(x, y, rgb);
}else{
int rgb=Color.white.getRGB();
erg.setRGB(x, y, rgb);
}
}
}
mfg Kala