Hallo,
und zwar sollen wir für die Uni ein Programm schreiben welches ein Bild einliest,
ein Negativ erstellt, ein Graustufenbild daraus macht ,anschließend über dieses
eine Maske laufen lässt und die rgb Werte danach "normiert" (also auf den Wertebereich [0,255] bringt).
Die Maske soll so ausschaun:
Soweit so gut und bis zu der Maske hab ich auch keine Probleme, aber dort haperts gewaltig.
Ich bekomme einfach nicht das Bild raus, das raus kommen soll.
links das Negativ, in der Mitte nach der Maske, rechts das Orginal
Eigentlich sollte ein Bild raus kommen, das nur grau ist und auch nurnoch die konturen
sollten zu erkennen sein... schaut irgendwie nicht so aus =(
Die Methode bekommt das Bild als 2D-Array übergeben und gibt diese auch so aus.
Das Graustufenbild habe ich getestet und das schaut soweit in ordnung aus, also muss
es irgendwie an diesem Stück liegen
Beim normieren bekomme ich auch nachdem ich gestern Nacht noch ewig rumgetüftelt habe
und nicht mehr genau weiss was ich alles geändert habe diesen fehler:
Ich hoffe ihr könnt mir helfen, ich hab keine Ahnung was meine Fehler sind.
Falls ich etwas zu ungenau erklärt habe sagt mir einfach bescheid.
Grüße Kaya
und zwar sollen wir für die Uni ein Programm schreiben welches ein Bild einliest,
ein Negativ erstellt, ein Graustufenbild daraus macht ,anschließend über dieses
eine Maske laufen lässt und die rgb Werte danach "normiert" (also auf den Wertebereich [0,255] bringt).
Die Maske soll so ausschaun:
Code:
1 1 1
maske = 0 0 0
-1 -1 -1
int[][] maske = {{1,0,-1},{1,0,-1},{1,0,-1}};
Soweit so gut und bis zu der Maske hab ich auch keine Probleme, aber dort haperts gewaltig.
Ich bekomme einfach nicht das Bild raus, das raus kommen soll.
links das Negativ, in der Mitte nach der Maske, rechts das Orginal
Eigentlich sollte ein Bild raus kommen, das nur grau ist und auch nurnoch die konturen
sollten zu erkennen sein... schaut irgendwie nicht so aus =(
Die Methode bekommt das Bild als 2D-Array übergeben und gibt diese auch so aus.
Das Graustufenbild habe ich getestet und das schaut soweit in ordnung aus, also muss
es irgendwie an diesem Stück liegen
Code:
// Maske wird auf das Graustufenbild angewendet
public int[][]wendeMaskeAn (int[][] pixels,int[][] pixels2,int[][] matrix){
for (int i = 1; i < hoehe-1; i++) {
for (int j = 1; j < breite-1; j++) {
int sum = 0;
for (int m = 0; m < 3; m++) {
for (int n = 0; n < 3; n++) {
sum+= (pixels[i + m -1][j + n -1]&255)*matrix[m][n];
}
}
pixels2[i][j] = (sum << 16) + (sum << 8) + sum;
}
}
return pixels2;
}
// Normiert Werte auf [0;255]
public int[][]normieren (int[][] pixels){
for (int i = 0; i < hoehe; i++) {
for (int j = 0; j < breite; j++) {
int rgb = pixels[j][i];
int r = (rgb >> 16) & 255;
int g = (rgb >> 8) & 255;
int b = rgb & 255;
if(r>255){
r=255;
}
if(r<0){
r=0;
}
if(b>255){
r=255;
}
if(b<0){
r=0;
}
if(g>255){
r=255;
}
if(g<0){
r=0;
}
}
}
return pixels;
}
Beim normieren bekomme ich auch nachdem ich gestern Nacht noch ewig rumgetüftelt habe
und nicht mehr genau weiss was ich alles geändert habe diesen fehler:
Code:
gelöst
Ich hoffe ihr könnt mir helfen, ich hab keine Ahnung was meine Fehler sind.
Falls ich etwas zu ungenau erklärt habe sagt mir einfach bescheid.
Grüße Kaya
Zuletzt bearbeitet: