二维 高斯低通滤波器matlab程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二维高斯滤波器图像滤波MTATLAB程序设计
用MATLAB设计一个3×3模板标准差为0.5,1.5,2.5的二维高斯低通滤波器(Gaussion low pass filter分别对灰度图像,真彩色图像,伪彩色图像进行滤波处理
%二维高斯低通滤波器
%文件为glpf.m
function glpf(J)
%处理索引图像
if isind(J)
[I,map]=imread(J);
I=imnoise(I,'gaussian',0.005);
subplot(2,2,1)
imshow(I,map);
title('a.原始图像');
K1=filter2(fspecial('gaussian',3*3,0.5),I);
K2=filter2(fspecial('gaussian',3*3,1.5),I);
K3=filter2(fspecial('gaussian',3*3,2.5),I);
subplot(2,2,2)
imshow(K1,map);
title('b.滤波器3*3,sigma=0.5')
subplot(2,2,3)
imshow(K2,map);
title('c.滤波器3*3,sigma=1.5')
subplot(2,2,4)
imshow(K3,map);
title('d.滤波器3*3,sigma=2.5')
end
%处理灰度,真彩色图像
if ~isind(J)
J=imread(J);%读入图像
I=imnoise(J,'gaussian');%加入高斯噪声
%输出原始图像
subplot(2,2,1)
imshow(I);
title('a.原始图像')
h1 = fspecial('gaussian',[3,3], 0.5);%用预定义的gaussian函数
[m n p]=size(I);
%[m n p] m,n代表像素点的位置,p代表空间分量
%p=1,代表亮度分量,即灰度图像
%p=3,代表亮度分量(Y),色差分量(Cr,Cb)
if p==1%处理灰度图像
I=double(I);
I=conv2(I,h1,'same');%I与h的二维离散卷积
end
if p==3%处理真彩色
I=double(I);
I(:,:,1)=conv2(I(:,:,1),h1,'same');
I(:,:,2)=conv2(I(:,:,2),h1,'same');
I(:,:,3)=conv2(I(:,:,3),h1,'same');
end
I=uint8(I);%8位无符号整型
%经过3*3,sigma=0.5二维高斯低通滤波器滤波后的图像subplot(2,2,2)
imshow(I);
title('b.滤波器3*3,sigma=0.5')
h2 = fspecial('gaussian',[3,3],1.5);
[m n p]=size(I);
if p==1
I=double(I);
I=conv2(I,h2,'same');%二维离散卷积
end
if p==3
I=double(I);
I(:,:,1)=conv2(I(:,:,1),h2,'same');
I(:,:,2)=conv2(I(:,:,2),h2,'same');
I(:,:,3)=conv2(I(:,:,3),h2,'same');
end
I=uint8(I);
%经过3*3,sigma=1.5二维高斯低通滤波器滤波后的图像subplot(2,2,3)
imshow(I);
title('c.滤波器3*3,sigma=1.5')
h3 = fspecial('gaussian',[3,3], 2.5);
[m n p]=size(I);
if p==1
I=double(I);
I=conv2(I,h3,'same');
end
if p==3
I=double(I);
I(:,:,1)=conv2(I(:,:,1),h3,'same');
I(:,:,2)=conv2(I(:,:,2),h3,'same');
I(:,:,3)=conv2(I(:,:,3),h3,'same');
end
I=uint8(I);
%经过3*3,sigma=2.5二维高斯低通滤波器滤波后的图像subplot(2,2,4)
imshow(I);
title('d.滤波器3*3,sigma=2.5')
end
程序调用
%glpfUse.m
%调用function glpf()处理灰度,真彩色,索引(伪彩色)图像并绘图glpf('填写你需要处理图像的路径')%灰度图像
glpf('填写你需要处理图像的路径')%真彩色图像
glpf('填写你需要处理图像的路径')%索引(伪彩色)图像本程序适用于数字图像处理多媒体课程设计