ガウス平滑化フィルターのイメージへの適用
この例では、imgaussfilt を使用して各種のガウス平滑化フィルターをイメージに適用する方法を説明します。ガウス平滑化フィルターは一般にノイズの低減に使用します。
イメージをワークスペースに読み取ります。
I = imread("cameraman.tif");標準偏差の大きい等方性ガウス平滑化カーネルでイメージをフィルター処理します。ガウス フィルターは一般に等方性です。すなわち、両方の次元で標準偏差が同じになります。等方性ガウス フィルターでは sigma にスカラー値を指定してイメージをフィルター処理できます。
Iblur1 = imgaussfilt(I,2); Iblur2 = imgaussfilt(I,4); Iblur3 = imgaussfilt(I,8);
元のイメージとフィルター処理されたすべてのイメージを表示します。
imshow(I)
title("Original image")
imshow(Iblur1)
title("Smoothed image, \sigma = 2")
imshow(Iblur2)
title("Smoothed image, \sigma = 4")
imshow(Iblur3)
title("Smoothed image, \sigma = 8")
異方性ガウス平滑化カーネルでイメージをフィルター処理します。imgaussfilt ではガウス カーネルは行と列の次元で異なる標準偏差をもつことができます。これらは軸方向の異方性ガウス フィルターと呼ばれます。異方性フィルターを使用する場合、sigma に 2 要素ベクトルを指定します。
IblurX1 = imgaussfilt(I,[4 1]); IblurX2 = imgaussfilt(I,[8 1]); IblurY1 = imgaussfilt(I,[1 4]); IblurY2 = imgaussfilt(I,[1 8]);
フィルター処理されたイメージを表示します。
imshow(IblurX1)
title("Smoothed image, \sigma_x = 4, \sigma_y = 1")
imshow(IblurX2)
title("Smoothed image, \sigma_x = 8, \sigma_y = 1")
imshow(IblurY1)
title("Smoothed image, \sigma_x = 1, \sigma_y = 4")
imshow(IblurY2)
title("Smoothed image, \sigma_x = 1, \sigma_y = 8")
元のイメージの空の領域に表れた水平の帯を抑制します。異方性ガウス フィルターはイメージ内にある水平方向または垂直方向の特徴を抑制できます。イメージの空の領域から一部分を抽出し、標準偏差が高いガウス フィルターを X 軸方向 (列が増加する方向) に使用します。
I_sky = imadjust(I(20:50,10:70)); IblurX1_sky = imadjust(IblurX1(20:50,10:70));
元の空のパッチとフィルター処理されたバージョンを表示します。
imshow(I_sky)
title("Sky in original image")
imshow(IblurX1_sky)
title("Sky in filtered image")