Digital Signal Processing Reference
In-Depth Information
6 Filter
public void run(ImageProcessor orig) {
1
int w = orig.getWidth();
Programm 6.2
3 × 3-Glattungsfilter (ImageJ-Plugin).
Die Filtermatrix ist als zweidimen-
sionales double -Array definiert (Zeile
5). Der Koordinatenursprung des
Filters liegt im Zentrum der Ma-
trix, also an der Array-Koordinate
[1 , 1], daher der Offset von 1 fur
die Koordinaten i und j in Zeile
20. In Zeile 24 wird die fur die
aktuelle Bildposition berechnete
Summe gerundet und anschließend
(Zeile 25) im Originalbild eingesetzt.
2
int h = orig.getHeight();
3
// 3 × 3 filter matrix
4
double[][] filter = {
5
{0.075, 0.125, 0.075},
6
{0.125, 0.200, 0.125},
7
{0.075, 0.125, 0.075}
8
};
9
ImageProcessor copy = orig.duplicate();
10
11
12
for (int v=1; v<=h-2; v++) {
for (int u=1; u<=w-2; u++) {
13
// compute filter result for position ( u, v )
14
double sum = 0;
15
for (int j=-1; j<=1; j++) {
16
for (int i=-1; i<=1; i++) {
17
int p = copy.getPixel(u+i,v+j);
18
// get the corresponding filter coe cient:
19
double c = filter[j+1][i+1];
20
sum = sum + c * p;
21
}
22
}
23
int q = (int) Math.round(sum);
24
orig.putPixel(u,v,q);
25
}
26
}
27
}
28
mit s
. Falls alle Koe zienten positiv sind, wie bei
Glattungsfiltern ublich, definiert man s reziprok zur Summe der Koe -
zienten
R
und H ( i, j )
Z
1
i,j H ( i, j ) ,
s =
(6.9)
um die Filtermatrix zu normalisieren. In diesem Fall liegt auch das Er-
gebnis in jedem Fall innerhalb des ursprunglichen Wertebereichs. Die
Filtermatrix aus Gl. 6.7 konnte daher beispielsweise auch in der Form
0 . 075
0 . 125
0 . 075
353
585
353
1
40
H ( i, j )=
=
(6.10)
0 . 125
0 . 200
0 . 125
0 . 075
0 . 125
0 . 075
1
definiert werden, mit dem gemeinsamen Skalierungsfaktor s =
40 =
0 . 025. Eine solche Skalierung wird etwa auch fur die Filteroperation in
Prog. 6.3 verwendet.
In Adobe Photoshop sind u. a. lineare Filter unter der Bezeichnung
Custom Filter“ in dieser Form realisiert. Auch hier werden Filter mit
ganzzahligen Koe zienten und einem gemeinsamen Skalierungsfaktor
Search WWH ::




Custom Search