Loading article…
幾何平均フィルタは、画像の平滑化とノイズ低減を目的とした画像フィルタリング処理です。[ 1 ]これは 数学的な幾何平均に基づいています。幾何平均の出力画像 G(x,y) は次のように与えられます。
ここで、S(x,y)は元の画像であり、フィルタマスクはm×nピクセルです。
出力画像における点(x,y)の各ピクセルは、幾何平均マスク内のピクセルの積を1/mn乗したもので表されます。例えば、マスクサイズが3×3の場合、出力画像のピクセル(x,y)は、S(x,y)とその周囲8ピクセルの積を1/9乗したものになります。
ピクセル(x,y)が中心にある以下のオリジナル画像を使用します。
結果は次のようになります: (5*16*22*6*3*18*12*3*15)^(1/9) = 8.77。
幾何平均フィルタは、ガウスノイズを除去するために最も広く使用されています。一般的に、算術平均フィルタよりもデータ損失が少なく、画像を滑らかにするのに役立ちます。[ 1 ]
以下のコードは、 MATLABを使用して画像に幾何平均フィルタを適用する方法を示しています。
% ガウスノイズが追加された画像入力ノイズに幾何平均フィルタを適用します[ m , n ] = size ( input_noise );output = zeros ( m , n ); % 出力画像にすべての値がゼロのプレースホルダー値を設定val = 1 ; % 新しいピクセル値を保持する変数for i = 2 : m - 2 % 元の画像の各ピクセルをループ処理しますj = 2 : n - 2の場合% ピクセルの周囲の 3x3 ウィンドウの幾何平均を計算する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 ; % 出力ピクセルを計算された幾何平均に設定val = 1 ; % 次のピクセルのためにvalをリセット終わり終わり
