Hallo,
ich habe ein Problem wo ich so nicht weiter komme!
Es geht darum dass ich einen Gaussfilter mit einem 5x5 Kern auf ein Bild
anwenden soll.
Dabei muss ja das Ausgangsbild mit dem Filter gefaltet werden!
Aber irgendwie macht dass was ich da in Code geschrieben habe nicht dass
was es soll, es bewirkt nur ein dass das Bild dunkler wird!
Es wäre cool wenn mir jemand denn tipp geben kann wo evtl. ein Fehler
liegen könnte!
Gruß
goldeneyes
Hier ist der Matlab-Code denn ich geschrieben habe!
1 | function pic = faltung(image,filter)
|
2 |
|
3 | [L,K] = size(filter);
|
4 | [N,M] = size(image);
|
5 | pic = zeros(N,M,'uint8');
|
6 | teiler = getSumFilterElements(filter);
|
7 | gw = 0;
|
8 | for i = L/2 + .5 : 1 : N - (L/2 - .5)
|
9 | for j = K/2 + .5 : 1 : M - (K/2 - .5)
|
10 | for t = - (L/2 - .5) : 1 :(L/2 - .5)
|
11 | for p = - (K/2 - .5) : 1 : (K/2 - .5)
|
12 |
|
13 | gw = gw + (double((image(i + t, j + p)) * filter(L/2 + .5 + t ,K/2 + .5 + p)));
|
14 |
|
15 | end
|
16 | end
|
17 | gw = gw/teiler;
|
18 | pic(i,j) = gw;
|
19 | gw = 0;
|
20 | end
|
21 | end
|