Digital Signal Processing Reference
In-Depth Information
12 Farbbilder
1 // File RGBbrighten1_.java
2 import ij.ImagePlus;
3 import ij.plugin.filter.PlugInFilter;
4 import ij.process.ImageProcessor;
5
6 public class RGBbrighten1_ implements PlugInFilter {
7
8
Programm 12.1
Verarbeitung von RGB-Farbbildern
mit Bitoperationen (ImageJ-Plugin,
Variante 1). Das Plugin erhoht alle
drei Farbkomponenten um 10 Ein-
heiten. Es erfolgt ein direkter Zugriff
auf das Pixel-Array (Zeile 12), die
Farbkomponenten werden durch Bi-
toperationen getrennt (Zeile 14-16)
und nach der Modifikation wieder zu-
sammengefugt (Zeile 23). Der Ruck-
gabewert DOES RGB (definiert durch
das Interface PlugInFilter )inder
setup() -Methode zeigt an, dass die-
ses Plugin Vollfarbenbilder im RGB-
Format bearbeiten kann (Zeile 28).
public void run(ImageProcessor ip) {
int[] pixels = (int[]) ip.getPixels();
9
10
11
for (int i = 0; i < pixels.length; i++) {
int c = pixels[i];
12
// split color pixel into rgb-components
13
int r = (c & 0xff0000) >> 16;
14
int g = (c & 0x00ff00) >> 8;
15
int b = (c & 0x0000ff);
16
// modify colors
17
r = r + 10; if (r > 255) r = 255;
18
g = g + 10; if (g > 255) g = 255;
19
b = b + 10; if (b > 255) b = 255;
20
// reassemble color pixel and insert into pixel array
21
pixels[i]
22
= ((r & 0xff)<<16) | ((g & 0xff)<<8) | b & 0xff;
23
}
24
}
25
26
27
public int setup(String arg, ImagePlus imp) {
return DOES_RGB; // this plugin works on RGB images
28
}
29
30 }
Ein ausfuhrlicheres und vollstandiges Beispiel zeigt Prog. 12.2 anhand
eines einfachen Plugins, das alle drei Farbkomponenten eines RGB-Bilds
um 10 Einheiten erhoht. Zu beachten ist dabei, dass die in das Bild einge-
setzten Komponentenwerte den Bereich 0 ... 255 nicht uber- oder unter-
schreiten durfen, da die putPixel() -Methode nur jeweils die untersten 8
Bits jeder Komponente verwendet und dabei selbst keine Wertebegren-
zung durchfuhrt. Fehler durch arithmetischen Uberlauf sind andernfalls
leicht moglich. Der Preis fur die Verwendung dieser Zugriffsmethoden
ist allerdings eine deutlich hohere Laufzeit (etwa Faktor 4 gegenuber
Variante 1 in Prog. 12.1).
Offnen und Speichern von RGB-Bildern
ImageJ unterstutzt folgende Arten von Bilddateien fur Vollfarbenbilder
im RGB-Format:
TIFF (nur unkomprimiert): 3
8-Bit-RGB. TIFF-Farbbilder mit 16
Bit Tiefe werden als Image-Stack mit drei 16-Bit Intensitatsbildern
geoffnet.
×
Search WWH ::




Custom Search