資源簡介
matlab 均值 中值 小波 傅里葉
使用matlab編寫 matlab7.0 2016a均可以編譯
代碼片段和文件信息
clear;clc;close?all
%讀取圖像
I=imread(‘1.jpg‘);
try
????I=rgb2gray(I);????%如果是RGB圖像,轉(zhuǎn)成灰度圖
end
%添加噪聲
I=imnoise(I‘salt?&?pepper‘0.04);?%?疊加密度為0.04的椒鹽噪聲
figure
imshow(I)
title(‘原圖‘)
%圖像去噪
I=medfilt2(I[2?4]);???%采用二維中值濾波函數(shù)medfilt2對受椒鹽噪聲干擾的圖像濾波
figure
imshow(I)
title(‘去噪之后的圖像‘)
%圖像銳化
[MN]=size(I);???%?計算圖像的尺寸
f=double(I);?????%?數(shù)據(jù)類型轉(zhuǎn)換,MATLAB不支持圖像的無符號整型的計算
g=fft2(f);???????%?二維傅立葉變換,得到頻域信息
g=fftshift(g);???%?0頻率移到(M/2N/2)處
n=2;????????????%?二階巴特沃斯(Butterworth)濾波器
D0=3;???????????%?巴特沃斯濾波器的D0,D0越大,保留的高頻信號就越少(對于不同的圖片,可以自行調(diào)節(jié),以便得到好的效果)
for?i=1:M
????for?j=1:N?
????????D=sqrt((i-M/2)^2+(j-N/2)^2);???%計算離0頻率(M/2N/2)的距離
????????h=1/(1+(D0/D)^(2*n))
評論
共有 條評論