用matlab对具有高斯和椒盐噪声的图象进行3*3,5*5,7*7和11*11的中值处理并分析比较结果;噪声的产生可以
用matlab对具有高斯和椒盐噪声的图象进行3*3,5*5,7*7和11*11的中值处理并分析比较结果;噪声的产生可以使用imnoise急求啊...
用matlab对具有高斯和椒盐噪声的图象进行3*3,5*5,7*7和11*11的中值处理并分析比较结果;噪声的产生可以使用imnoise
急求啊 展开
急求啊 展开
2个回答
展开全部
刚刚做完,运行没问题的,就贴给你吧。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中值滤波后的图像');
哈哈,第一次在百度知道回答问题……
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中值滤波后的图像');
展开全部
I = imread('4.jpg');
[d1,d2,d3] = size(I);
if(d3 > 1)
I = rgb2gray(I);%如果是灰度图就不用先变换
end
I = double(I) / 255;
I1 = uint8(255 * I * 0.5 + 0.5);
imshow(I);
imwrite(I,'1.jpg'); %显示原始图像
title('original')
P1=imnoise(I,'gaussian',0.02) %加入高斯躁声
figure,imshow(P1) %加入高斯躁声后显示图像
title('gaussian noise');
P2=imnoise(I,'salt & pepper',0.02) %加入椒盐躁声
figure,imshow(P2) %%加入椒盐躁声后显示图像
title('salt & pepper noise');
l=[3 3 3 %对高斯躁声3*3滤波
3 3 3
3 3 3];
l=l/9;
k=conv2(P1,l)
figure,imshow(k,[])%显示图像
楼主试试啊,我也不太确定
[d1,d2,d3] = size(I);
if(d3 > 1)
I = rgb2gray(I);%如果是灰度图就不用先变换
end
I = double(I) / 255;
I1 = uint8(255 * I * 0.5 + 0.5);
imshow(I);
imwrite(I,'1.jpg'); %显示原始图像
title('original')
P1=imnoise(I,'gaussian',0.02) %加入高斯躁声
figure,imshow(P1) %加入高斯躁声后显示图像
title('gaussian noise');
P2=imnoise(I,'salt & pepper',0.02) %加入椒盐躁声
figure,imshow(P2) %%加入椒盐躁声后显示图像
title('salt & pepper noise');
l=[3 3 3 %对高斯躁声3*3滤波
3 3 3
3 3 3];
l=l/9;
k=conv2(P1,l)
figure,imshow(k,[])%显示图像
楼主试试啊,我也不太确定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询