資源簡介
里面有各種中值濾波去噪MATLAB程序,包含標準、開關、極值、自適應等中值濾波。
代碼片段和文件信息
clc
clear;
I=imread(‘lena.bmp‘);
I=rgb2gray(I);
[mn]=size(I);
figure(1)imshow(I)title(‘源圖像‘);
I1=imnoise(I‘salt?&?pepper‘0.3);?%添加椒鹽脈沖噪聲
figure(2)imshow(I1);title(‘加入強度為0.3的脈沖噪聲‘);
%?%常規中值濾波
Ic=medfilt2(I1);
figure(3)imshow(Ic);title(‘常規中值濾波效果圖‘);
Temp=zeros(33);
%?開關中值濾波就是區分噪聲點和非噪聲點,作為一個開關
Ik=I1;
for?i=2:m-1
????for?j=2:n-1
????????if?Ik(ij)==255?||?Ik(ij)==0
????????????Temp?=?Ik(i-1:i+1j-1:j+1);
????????????Ts?=?sort(Temp(:));
????????????Ik(ij)?=?Ts(5);
????????end
????end
end
figure(4)imshow(Ik);title(‘開關中值濾波效果圖‘);
%?
%?%極值中值濾波就是判斷某點是否是該區域的極大極小值點,區分噪聲和非噪聲
Ij=I1;
for?i=2:m-1
????for?j=2:n-1
????????Temp?=?Ij(i-1:i+1j-1:j+1);
????????Ts?=?sort(Temp(:));
????????if?Ij(ij)==Ts(1)?||?Ij(ij)==Ts(9)
????????????Ij(ij)=Ts(5);
????????end
????end
end
figure(5)imshow(Ij);title(‘極值中值濾波效果圖‘);
%加權中值濾波權值的大小待定
Iq=I1;
w=[1?2?3?4?5?4?3?2?1?];
for?i=2:m-1
????for?j=2:n-1
????????Temp?=?Iq(i-1:i+1j-1:j+1);
????????T=Temp(:);
?
- 上一篇:matlab圖像光線補償程序(可運行)
- 下一篇:MATLAB實現高斯賽德爾迭代法
評論
共有 條評論