導航:首頁 > 編程語言 > matlab均值濾波去噪程序

matlab均值濾波去噪程序

發布時間:2024-06-03 22:46:43

『壹』 求均值濾波和中值濾波演算法的MATLAB代碼

5*5的均值濾波代碼
w2=fspecial('average',[5 5]); %% 先定義一個濾波器
h=imfilter(a,w2,'replicate'); %%讓圖像通過濾波器
imshow(h);
imwrite(h,'8.jpg');
中值的暫時還不會

『貳』 請教高手:我用數據採集卡採集到數據之後,需要在matlab中進行濾波去噪,有哪位知道怎麼在matlab中實現

[N,Wc]=buttord()

%估算得到Butterworth低通濾波器的最小階數N和3dB截止頻率Wc

[a,b]=butter(N,Wc); %設計Butterworth低通濾波器

[h,f]=freqz(); %求數字低通濾波器的頻率響應

figure(2); % 打開窗口2

subplot(221); %圖形顯示分割窗口

plot(f,abs(h)); %繪制Butterworth低通濾波器的幅頻響應圖

title(巴氏低通濾波器'');

grid; %繪制帶網格的圖像

sf=filter(a,b,s); %疊加函數S經過低通濾波器以後的新函數

subplot(222);

plot(t,sf); %繪制疊加函數S經過低通濾波器以後的時域圖形

xlabel('時間 (seconds)');

ylabel('時間按幅度');

SF=fft(sf,256); %對疊加函數S經過低通濾波器以後的新函數進行256點的基—2快速傅立葉變換

w= %新信號角頻率

subplot(223);

plot()); %繪制疊加函數S經過低通濾波器以後的頻譜圖

title('低通濾波後的頻譜圖');

%設計高通濾波器

[N,Wc]=buttord()

%估算得到Butterworth高通濾波器的最小階數N和3dB截止頻率Wc

[a,b]=butter(N,Wc,'high'); %設計Butterworth高通濾波器

[h,f]=freqz(); %求數字高通濾波器的頻率響應

figure(3);

subplot(221);

plot()); %繪制Butterworth高通濾波器的幅頻響應圖

title('巴氏高通濾波器');

grid; %繪制帶網格的圖像

sf=filter(); %疊加函數S經過高通濾波器以後的新函數

subplot(222);

plot(t,sf); ;%繪制疊加函數S經過高通濾波器以後的時域圖形

xlabel('Time(seconds)');

ylabel('Time waveform');

w; %新信號角頻率

subplot(223);

plot()); %繪制疊加函數S經過高通濾波器以後的頻譜圖

title('高通濾波後的頻譜圖');

%設計帶通濾波器

[N,Wc]=buttord([)

%估算得到Butterworth帶通濾波器的最小階數N和3dB截止頻率Wc

[a,b]=butter(N,Wc); %設計Butterworth帶通濾波器

[h,f]=freqz(); %求數字帶通濾波器的頻率響應

figure(4);

subplot(221);

plot(f,abs(h)); %繪制Butterworth帶通濾波器的幅頻響應圖

title('butter bandpass filter');

grid; %繪制帶網格的圖像

sf=filter(a,b,s); %疊加函數S經過帶通濾波器以後的新函數

subplot(222);

plot(t,sf); %繪制疊加函數S經過帶通濾波器以後的時域圖形

xlabel('Time(seconds)');

ylabel('Time waveform');

SF=fft(); %對疊加函數S經過帶通濾波器以後的新函數進行256點的基—2快速傅立葉變換

w=( %新信號角頻率

subplot(223);

plot(')); %繪制疊加函數S經過帶通濾波器以後的頻譜圖

title('帶通濾波後的頻譜圖');

『叄』 matlab圖像去噪

你是要用什麼濾波器呢 ,我這里有一個程序,用均值和中值兩種方法:
g=imread('E:\1.jpg'); %讀入圖像的具體位置,
v=imnoise(g,'salt & pepper',0.1);
subplot(2,2,1);
imshow(g)
title('orginal image');
subplot(2,2,2);
imshow(v)
title('noise image');
[h,w]=size(v);
n=9;
f=double(v);
a=ones(n,n);
y=f;
for i=1:h-n+1
for j=1:w-n+1
a=f(i:i+(n-1),j:j+(n-1));
s=sum(sum(a));
y(i+(n-1)/2,j+(n-1)/2)=s/(n*n);
end
end
subplot(2,2,3);
imshow(uint8(y))
title('noise rection by average filter');
x=f;
for i=1:h-n+1
for j=1:w-n+1
c=f(i:i+(n-1),j:j+(n-1));
e=c(1,:);
for u=2:n
e=[e,c(u,:)];
end
mm=median(e);
x (i+(n-1)/2,j+(n-1)/2)=mm;
end
end
subplot(2,2,4);
imshow(uint8(x))
title('noise rection by median filter');

『肆』 編寫用均值濾波去噪的matlab程序,用兩種方法實現.(重謝)

方法一:filter2

clearall;

I=imread('lena.bmp');

%讀入預處理圖像

imshow(I)

%顯示預處理圖像

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均值濾波

figure,imshow(K1)

figure,imshow(K2)

figure,imshow(K3)

方法二:雙循環語句,移動平均法

%均值濾波

clc,clear;

f=imread('lena.bmp');

subplot(121),imshow(f),title('原圖');

f1=imnoise(f,'gaussian',0.002,0.0008);

%subplot(222),imshow(f1),title('添加高斯雜訊圖');

k1=floor(3/2)+1;

k2=floor(3/2)+1;

X=f1;

[M,N]=size(X);

uint8Y=zeros(M,N);

funBox=zeros(3,3);

fori=1:M-3

forj=1:N-3

funBox=X(i:i+3,j:j+3);

s=sum(funBox(:));

h=s/9;

Y(i+k1,j+k2)=h;

end;

end;

Y=Y/255;

subplot(122),imshow(Y),title('均值濾波');

實現圖:

閱讀全文

與matlab均值濾波去噪程序相關的資料

熱點內容
proface密碼 瀏覽:190
什麼app幫別人買感冒葯 瀏覽:365
華為終端客服微信 瀏覽:33
文件後面加內容應該怎麼取名 瀏覽:959
可以學會講白話的app有哪些 瀏覽:332
mysql資料庫navicat 瀏覽:246
word如何固定文本框 瀏覽:974
什麼文件轉換為pst 瀏覽:76
編程在哪裡好找工作 瀏覽:177
電腦圖標上有個文件 瀏覽:832
筆記本i5系統重裝教程 瀏覽:472
文件如何變白 瀏覽:679
長城c30加裝導航升級 瀏覽:648
壓縮包會改變文件內容么 瀏覽:548
45度面槽怎麼編程 瀏覽:742
蘋果6原裝充電器多大的 瀏覽:814
騰訊群文件 瀏覽:584
win10雙擊excel文件無法直接打開 瀏覽:152
dnf90版本劍魂右槽排名 瀏覽:375
mac給文件夾添加快捷方式到桌面 瀏覽:221

友情鏈接