EDA365电子论坛网

标题: 基于matlab的Butterworth低通滤波程序分享 [打印本页]

作者: piday123    时间: 2020-7-8 15:39
标题: 基于matlab的Butterworth低通滤波程序分享
clear all;
6 k; I6 [) c9 a; @- }7 s: o' ^8 M
1 w9 g5 O: T! ^3 }close all;0 E! N- [, @- ^$ [5 C: |( k; f/ n. w0 H

8 l7 l( f& S7 Z/ f8 FP=input('inputimage data:');
: M- Z2 p7 X3 g% P8 g+ L
$ J0 ], `5 u) |% D% ~1 xd=size(P);1 }& u4 \+ m0 D. j* \$ e* o  d0 f

8 c* G' }# P5 |# q+ W6 Qif(d(3)>1). S* ]3 J4 [& c8 J0 ]9 X! a
- `% O. v5 s& p% ~' \$ l
    P=rgb2gray(P);# Z) W7 B- t! |* E+ J3 Q* ~! ^: S2 ^0 y
/ H# o+ Q: H" G3 c3 \
end# D6 B( R- c: u$ ~% n

: G' Y! P& W$ t3 R7 K1 ]$ [/ fsubplot(131);imshow(P);
5 w1 ?& w. J/ K5 |5 t+ W8 _: i2 _
/ c  k. r& e5 D- V# C: Ftitle('原始图像');
' j6 ?# T" `. e2 A: c+ `5 ]( n4 ~+ c/ W$ v/ S7 ^6 Q
P1=imnoise(P,'salt& pepper',0.02);) T$ [5 |* o8 b. D: [3 R" k

" H* c8 I3 `( R8 m# b9 esubplot(132)
. `+ F0 n  [1 A8 y5 d& w
7 E5 V6 I/ S4 k" d5 P( D; jimshow (P1);
4 r/ _' }1 H/ p; Y3 Z4 V0 m" r3 b& r: c$ ]! g
title('加入椒盐噪声后的图像');) k9 |' g( W0 p4 K

" W3 B* ?' n- Gf=double(P1);) l0 |1 T2 P. a9 I, R. G" w1 S

1 F; j9 K' b( f2 a) _+ L0 R9 Og=fft2(f);%傅里叶变换
+ _  j* `) G5 X. q& V, k$ H# Y/ F  Y( S; J: ]+ o
g=fftshift(g);%转换数据矩阵fftshift是针对频域的,将FFT的DC分量移到频谱中心
9 q, k1 a: T, }! }) \0 x即对频域的图像,  {+ w- j* [% u1 z9 v" z
9 S9 C$ b) L' G9 Q3 F9 g, m
[M,N]=size(g);& L0 L8 N9 t: t; u/ U. L( s4 L

# \' F4 H! d; P0 n. L; hD0=input('inputnonnegative dhreshold D0=');
% @8 w2 c1 @9 w6 G% p# O9 v2 c& F5 h) O" {( l) ?
n=input('input theorder of filtering n=');- u8 q5 y! o0 Q0 g2 V" ]
' M# a1 H) Q# u/ \$ E( ~
n1=fix(M/2);$ f& r3 L; S8 I; y, P9 m! n
. H! R% L+ i. m7 M
n2= fix(N/2);' X' S& ^7 m" n0 S& n+ ^

, L: K' j# B4 wfor i=1:M
. a$ @2 F) x) \# l% r0 b. t2 Y* e( \* E2 _/ y1 {
    for j=1:N, k6 M/ B8 B' \! J! P) x

7 j" c5 B' O4 R; F% u        d=sqrt((i-n1)^2+(j-n2)^2);- E6 @9 w9 l% ]  @  [+ N  R
5 @; a! M3 U& u+ W5 C+ p( }
h=1/(1+(d/D0)^(2*n));$ L; S  u, U/ h2 M3 @& q4 Y. v

3 p& A; F) F0 b% K9 K. B7 N        result(i,j)=h*g(i,j);0 [3 F+ F% N3 [! g* U" Y2 f
4 w# ^8 O" X) f0 o+ C" ?- n
    end4 X/ q9 y5 W' P5 T

. M0 n. N; h( b, n+ iend
4 M* x* I$ O/ k9 n8 e+ e! l1 T: e. S6 _* z! \  j) D6 |
result=ifftshift(result);
/ n; M$ p) A+ f; l8 h: k5 H
$ }2 F9 z" h# X; x8 n! vX2=ifft2(result);
: @* ?/ y, l* B- c, _! H: ]
4 d5 x3 n! @  n5 [) Q' \X3=uint8(real(X2));0 C& x. D# G) ?1 b: }& L% v; C

0 a# W! v) I5 z6 m0 ~5 Ssubplot(133)
6 T2 i4 z) }- P7 N4 C. @  U. t
: R& Y: K* W! @) |# wimshow (X3);
  a7 \" }9 E# P: M% }5 v/ k5 O- J& c8 [' t( g! V  m
title('Butterworth低通滤波所得图像');9 z& l: R, _2 }0 T) n
# i6 o! [) t* j# }4 F# l; V

2 ^3 f9 p% a- I0 O7 x, Y3 W8 s4 l7 H/ U+ ]: J: h2 |  q; I: b! T

2 i$ W  l( p' k5 L
& T- r; c5 J2 H; Y- E
作者: NNNei256    时间: 2020-7-8 17:40
基于matlab的Butterworth低通滤波程序




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2