
本示例說明了如何使用imgaussfilt
來對圖像應用不同的高斯平滑濾波器。高斯平滑濾波器通常用于降低噪聲。
將圖像讀入工作區。
I = imread('cameraman.tif');
使用各向同性的高斯平滑核增加標準偏差來過濾圖像。高斯濾波器通常是各向同性的,也就是說,它們在兩個維度上具有相同的標準偏差。通過為sigma
指定標量值,可以通過各向同性的高斯濾波器對圖像進行濾波。
Iblur1 = imgaussfilt(I,2);Iblur2 = imgaussfilt(I,4);Iblur3 = imgaussfilt(I,8);
顯示原始圖像和所有過濾的圖像。
figureimshow(I)title('Original image')

figureimshow(Iblur1)title('Smoothed image, sigma = 2')

figureimshow(Iblur2)title('Smoothed image, sigma = 4')

figureimshow(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]);
顯示濾波的圖像。
figureimshow(IblurX1)title('Smoothed image, sigma_x = 4, sigma_y = 1')

figureimshow(IblurX2)title('Smoothed image, sigma_x = 8, sigma_y = 1')

figureimshow(IblurY1)title('Smoothed image, sigma_x = 1, sigma_y = 4')

figureimshow(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));
顯示原始天空圖塊以及濾波版本的圖塊。
figureimshow(I_sky), title('Sky in original image')

figureimshow(IblurX1_sky), title('Sky in filtered image')

注:本文根據MATLAB官網內容修改而成。
我推薦給你以下的免費視頻教程,特點是沒有PPT,不摻水,直接編程環境下的實操課程:
用100分鐘了解MATLAB編程
《MATLAB編程》視頻課程 - 商業數據分析_數據可視化_Tableau免費課程_Tableau培訓_自學Tableau_上海_1data.pro?www.1data.pro
歡迎您進一步了解以下MATLAB系列文章:
吃小羊:MATLAB作圖實例:00:索引?zhuanlan.zhihu.com

