Bildverarbeitung: Kantenstärkung funktioniert nicht.
2006-01-05 14:38
Connor
http://www.roboternetz.de/wissen/index.php/Bildverarbeitung_Tutorial
durch eine Matrix 1.Zeile (0 -1 0) 2.Zeile(-1 4 -1) 3.Zeile (0 -1 0)
soll angeblich die kante verstärkt werden.
Bei mir siehts so aus wie ein Bild auf ein Fernseher der keinen Empfang hat. Halt nur diese Schwarzweiß gepunktete Muster
public static short[][] kantenStärkung(SWBild swbild)
{
int hoehe = swbild.gibHoehe();
int breite = swbild.gibBreite();
short[][] bilddaten = swbild.gibBilddaten();
short[][] bilddaten2 = swbild.gibBilddaten();
int zwischenspeicher = 0;
for (int y = 1; y < hoehe-1; y++)
{
for (int x = 1; x < breite-1; x++)
{
// Hier wird die oben genannte Matrix benutzt
zwischenspeicher =
(4*bilddaten[y][x])-bilddaten[y-1][x]-bilddaten[y+1][x]-bilddaten[y][x-1]-bilddaten[y][x+1];
bilddaten2[y][x] = (short) zwischenspeicher;
}
}
return bilddaten2;
}
durch eine Matrix 1.Zeile (0 -1 0) 2.Zeile(-1 4 -1) 3.Zeile (0 -1 0)
soll angeblich die kante verstärkt werden.
Bei mir siehts so aus wie ein Bild auf ein Fernseher der keinen Empfang hat. Halt nur diese Schwarzweiß gepunktete Muster
public static short[][] kantenStärkung(SWBild swbild)
{
int hoehe = swbild.gibHoehe();
int breite = swbild.gibBreite();
short[][] bilddaten = swbild.gibBilddaten();
short[][] bilddaten2 = swbild.gibBilddaten();
int zwischenspeicher = 0;
for (int y = 1; y < hoehe-1; y++)
{
for (int x = 1; x < breite-1; x++)
{
// Hier wird die oben genannte Matrix benutzt
zwischenspeicher =
(4*bilddaten[y][x])-bilddaten[y-1][x]-bilddaten[y+1][x]-bilddaten[y][x-1]-bilddaten[y][x+1];
bilddaten2[y][x] = (short) zwischenspeicher;
}
}
return bilddaten2;
}