自己编写的高斯滤波已理解,可是matlab自带的高斯滤波函数却没有用过,这里记录一下。
%matlab自带函数实现灰度图高斯滤波
clear
close all
img=imread('lena.bmp');
sigma=6;%标准差大小
window=double(uint8(3*sigma)*2+1);%窗口大小一半为3*sigma
H=fspecial('gaussian', window, sigma);%fspecial('gaussian', hsize, sigma)产生滤波模板
%为了不出现黑边,使用参数'replicate'(输入图像的外部边界通过复制内部边界的值来扩展)
img_gauss=imfilter(img,H,'replicate');
figure
subplot(2,1,1),imshow(img),title('输入图像');
subplot(2,1,2),imshow(img_gauss),title('高斯滤波后');
效果图: