均值滤波matlab程序代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%均值滤波
%方法一:filter2
clear all;
figure
I=rgb2gray(imread(''));
I=imnoise(I,'salt & pepper',; %加入椒盐噪声
K1=filter2(fspecial('average',3),I)/255; %进行3*3均值滤波
K2=filter2(fspecial('average',5),I)/255; %进行5*5均值滤波
K3=filter2(fspecial('average',7),I)/255; %进行7*7均值滤波
subplot(2,2,1),imshow(I),title('椒盐噪声图'); %显示原图像
subplot(2,2,2),imshow(K1),title('3*3均值滤波图像');
subplot(2,2,3),imshow(K2),title('5*5均值滤波图像');
subplot(2,2,4),imshow(K3),title('7*7均值滤波图像');
%方法二双循环语句,移动平均法
%均值滤波
clc,clear;
figure
f=rgb2gray(imread(''));
subplot(2,2,1),imshow(f),title('原图');
f1=imnoise(f,'gaussian',,;
subplot(2,2,2),imshow(f1),title('高斯噪声图');
k1=floor(3/2)+1;
k2=floor(3/2)+1;
X=f1;
[M,N]=size(X);
uint8 Y=zeros(M,N);
funBox=zeros(3,3);
for i=1:M-3
for j=1:N-3
funBox=X(i:i+3,j:j+3);
s=sum(funBox(:));
h=s/16;
Y(i+k1,j+k2)=h;
end;
end;
Y=Y/255;
subplot(2,2,3),imshow(Y)
,title('均值滤波图');