導航:首頁 > 編程語言 > 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均值濾波去噪程序相關的資料

熱點內容
蘋果電腦查詢wifi密碼 瀏覽:844
哪裡看雲頂之弈大數據 瀏覽:686
福建醫大附一app 瀏覽:552
javaweb增量發布 瀏覽:744
安卓怎麼打開多點觸控 瀏覽:962
蘋果6一解屏就是passbook 瀏覽:721
怎麼去掉word文字底紋 瀏覽:855
哪些是大數據的范圍 瀏覽:296
下載路徑文件管理找不到 瀏覽:469
文件系統鎖定怎樣解除 瀏覽:191
applepay綁定設備 瀏覽:396
d盤的壓縮文件如何解壓 瀏覽:750
哪個編程軟體適合新手 瀏覽:952
在桌面建造一個文件夾 瀏覽:683
java中文簡繁體轉換工具 瀏覽:157
c好看的登陸界面代碼 瀏覽:622
系統自帶信息非默認程序 瀏覽:668
網站有專利兩個字被罰要多少錢 瀏覽:84
手機儲存文件的路徑 瀏覽:771
三作標需要什麼文件格式 瀏覽:585

友情鏈接