このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ガウス平滑化フィルターのイメージへの適用
この例では、imgaussfilt
を使用して各種のガウス平滑化フィルターをイメージに適用する方法を説明します。ガウス平滑化フィルターは一般にノイズの低減に使用します。
イメージをワークスペースに読み取ります。
I = imread('cameraman.tif');
標準偏差の大きい等方性ガウス平滑化カーネルでイメージをフィルター処理します。ガウス フィルターは一般に等方性です。すなわち、両方の次元で標準偏差が同じになります。等方性ガウス フィルターでは sigma
にスカラー値を指定してイメージをフィルター処理できます。
Iblur1 = imgaussfilt(I,2); Iblur2 = imgaussfilt(I,4); Iblur3 = imgaussfilt(I,8);
元のイメージとフィルター処理されたすべてのイメージを表示します。
figure
imshow(I)
title('Original image')
figure
imshow(Iblur1)
title('Smoothed image, \sigma = 2')
figure
imshow(Iblur2)
title('Smoothed image, \sigma = 4')
figure
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]);
フィルター処理されたイメージを表示します。
figure
imshow(IblurX1)
title('Smoothed image, \sigma_x = 4, \sigma_y = 1')
figure
imshow(IblurX2)
title('Smoothed image, \sigma_x = 8, \sigma_y = 1')
figure
imshow(IblurY1)
title('Smoothed image, \sigma_x = 1, \sigma_y = 4')
figure
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));
元の空のパッチとフィルター処理されたバージョンを表示します。
figure
imshow(I_sky), title('Sky in original image')
figure
imshow(IblurX1_sky), title('Sky in filtered image')