Digital Signal Processing Reference
In-Depth Information
C.7 Konvertieren von Bildern
public void run (ImageProcessor ip) {
1
int w = ip.getWidth();
2
Programm C.1
Direkter Pixel-Zugriff fur ein Bild
vom Typ ByteProcessor .
int h = ip.getHeight();
3
byte[] pixels = (byte[]) ip.getPixels();
4
5
6
for (int v = 0; v < h; v++) {
for (int u = 0; u < w; u++) {
7
int p = 0xFF & pixels[v * w + u];
8
p=p+1;
9
pixels[v * w + u] = (byte) (0xFF & p);
10
}
11
}
12
}
13
Falls (wie in obigem Beispiel) die Koordinatenwerte ( u, v )fur die
Berechnung nicht benotigt werden und die Reihenfolge des Zugriffs auf
die Pixelwerte irrelevant ist, kann man naturlich auch mit nur einer
Schleife uber alle Elemente des eindimensionalen Pixel-Arrays (der Lange
w
h ) iterieren. Diese Moglichkeit wird beispielsweise in Prog. 12.1 (S.
240) fur die Iteration uber alle Pixelwerte eines Farbbilds genutzt.
ยท
C.7 Konvertieren von Bildern
C.7.1 ImageProcessor (Klasse)
Die Klasse ImageProcessor stellt folgende Methoden zur Konvertierung
zwischen Prozessor-Objekten zur Verfugung, die jeweils eine Kopie des
bestehenden Prozessors erzeugen, der selbst unverandert bleibt. Falls der
bestehende Prozessor bereits vom gewunschten Zieltyp ist, wird nur eine
Kopie angelegt.
ImageProcessor convertToByte (boolean doScaling)
Kopiert den Inhalt des bestehenden Prozessors ( this ) in ein neues
Objekt vom Typ ByteProcessor .
ImageProcessor convertToShort (boolean doScaling)
Kopiert den Inhalt des bestehenden Prozessors ( this ) in ein neues
Objekt vom Typ ShortProcessor .
ImageProcessor convertToFloat ()
Kopiert den Inhalt des bestehenden Prozessors ( this ) in ein neues
Objekt vom Typ FloatProcessor .
ImageProcessor convertToRGB ()
Kopiert den Inhalt des bestehenden Prozessors ( this ) in ein neues
Objekt vom Typ RGBProcessor .
Search WWH ::




Custom Search