Filtr średniej geometrycznej - Geometric mean filter

Średniej geometrycznej filtra jest procesem filtrowania obrazu przeznaczone do wygładzania i zmniejszenia hałasu obrazu. Opiera się na matematycznej średniej geometrycznej . Obraz wyjściowy G(x,y) średniej geometrycznej jest określony wzorem

Gdzie S(x,y) to oryginalny obraz, a maska ​​filtra to m na n pikseli.

Każdy piksel obrazu wyjściowego w punkcie (x,y) jest iloczynem pikseli w masce średniej geometrycznej podniesionej do potęgi 1/min. Na przykład, używając maski o rozmiarze 3 na 3, piksel (x,y) w obrazie wyjściowym będzie iloczynem S(x,y) i wszystkich 8 otaczających go pikseli podniesionych do potęgi 1/9.

Używając następującego oryginalnego obrazu z pikselem (x,y) na środku:

Gmf.jpgDaje wynik: (5*16*22*6*3*18*12*3*15)^(1/9) = 8,77.

Podanie

Filtr średniej geometrycznej jest najczęściej używany do odfiltrowywania szumu Gaussa . Ogólnie rzecz biorąc, pomoże to wygładzić obraz przy mniejszej utracie danych niż filtr średniej arytmetycznej .

Przykład kodu

Poniższy kod przedstawia zastosowanie filtra średniej geometrycznej do obrazu przy użyciu MATLAB .

% Applies geometric mean filter to image input_noise that has added gaussian noise

[m, n] = size(input_noise);                  
output = zeros(m, n);                       % output image set with placeholder values of all zeros
val = 1;                                    % variable to hold new pixel value

for i = 2:m-2                               % loop through each pixel in original image
    for j = 2:n-2                           % compute geometric mean of 3x3 window around pixel
        p = input_noise(i - 1, j - 1);
        q = input_noise(i - 1, j);
        r = input_noise(i - 1, j + 1);
        s = input_noise(i, j - 1);
        t = input_noise(i, j);
        u = input_noise(i, j + 1);
        v = input_noise(i + 1, j - 1);
        w = input_noise(i + 1, j);
        x = input_noise(i + 1, j + 1);
        
        val = (p * q * r * s * t * u * v * w * x) ^ (1 / 9);
        output(i, j) = val;                 % set output pixel to computed geometric mean
        val = 1;                            % reset val for next pixel
    end
end
Obraz wejściowy z dodanym szumem Gaussa
Obraz wejściowy z dodanym szumem Gaussa
Obraz wyjściowy po filtrze

Bibliografia