用matlab对具有高斯和椒盐噪声的图象进行3*3,5*5,7*7和11*11的中值处理并分析比较结果;噪声的产生可以使用imnoise
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 11:37:28
用matlab对具有高斯和椒盐噪声的图象进行3*3,5*5,7*7和11*11的中值处理并分析比较结果;噪声的产生可以使用imnoise
用matlab对具有高斯和椒盐噪声的图象进行3*3,5*5,7*7和11*11的中值处理并分析比较结果;噪声的产生可以使用imnoise
用matlab对具有高斯和椒盐噪声的图象进行3*3,5*5,7*7和11*11的中值处理并分析比较结果;噪声的产生可以使用imnoise
刚刚做完,运行没问题的,就贴给你吧.7×7、11×11你自己改啦!
哈哈,第一次在百度知道回答问题……
clear;
clc;
I=imread('红萝卜[灰白].JPG');
[a,b]=size(I);
figure
subplot(1,2,1);imshow(I);title('灰白原图');
K=imnoise(I,'salt & pepper',0.02);
[a,b]=size(K);
subplot(1,2,2);imshow(K);title('加椒盐噪声后图像');
%3*3中值滤波
for i=1:a
for j=1:b
if(i==1|i==a|j==1|j==b)
G(i,j)=K(i,j);
else
temp(1)=K(i-1,j-1);
temp(2)=K(i-1,j);
temp(3)=K(i-1,j+1);
temp(4)=K(i,j-1);
temp(5)=K(i,j);
temp(6)=K(i,j+1);
temp(7)=K(i+1,j-1);
temp(8)=K(i+1,j);
temp(9)=K(i+1,j+1);
temp=sort(temp);
G(i,j)=temp(5);
end
end
end
figure
subplot(1,2,1);imshow(G);title('3×3中值滤波后的图像');
%5*5中值滤波
for i=1:a
for j=1:b
if(i==1|i==2|i==a-1|i==a|j==1|j==2|j==b-1|j==b)
G5(i,j)=K(i,j);
else
temp(1)=K(i-2,j-2);
temp(2)=K(i-2,j-1);
temp(3)=K(i-2,j);
temp(4)=K(i-2,j+1);
temp(5)=K(i-2,j+2);
temp(6)=K(i-1,j-2);
temp(7)=K(i-1,j-1);
temp(8)=K(i-1,j);
temp(9)=K(i-1,j+1);
temp(10)=K(i-1,j+2);
temp(11)=K(i,j-2);
temp(12)=K(i,j-1);
temp(13)=K(i,j);
temp(14)=K(i,j+1);
temp(15)=K(i,j+2);
temp(16)=K(i+1,j-2);
temp(17)=K(i+1,j-1);
temp(18)=K(i+1,j);
temp(19)=K(i+1,j+1);
temp(20)=K(i+1,j+2);
temp(21)=K(i+2,j-2);
temp(22)=K(i+2,j-1);
temp(23)=K(i+2,j);
temp(24)=K(i+2,j+1);
temp(25)=K(i+2,j+2);
temp=sort(temp);
G5(i,j)=temp(13);
end
end
end
subplot(1,2,2);imshow(G5);title('5×5中值滤波后的图像');