EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑
4 O# |) D9 L' X# m7 {2 A- D8 W, a3 L8 g3 s' e1 @* ?6 b
在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
% Z5 _+ S* v1 w [+ A) E$ S* }
3 D3 T) n- l& w6 [& Eclose all;
6 ^5 E n/ B0 O. p) iclear all;
1 N% h: G8 a+ B! f" cclc;4 O$ _* w6 C! ~# D
p = imread('ayst.jpg');" n/ X( _4 ~4 G
a1 = p(:,:,1);%只取彩色图像的R分量& ^' |0 H q8 [% h4 R& o% S
J=imresize(a1,[512,512]);%将图像压缩为512*512 n9 F- Y& p g+ l1 i2 K+ m
figure,imshow(a1);; m% V3 n0 D! t* V! v
figure;
j4 k- |4 {7 i1 ]& p, Aimshow(J);. a' _% Q/ R8 k7 N$ [4 C2 u
w = ones(31);
8 C- O& s- }7 f, RJ = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0), x, B3 a( }0 V( n" p
gd = imfilter(J,w);6 R# F' h- q5 t3 z" f* c: _
gd = gd./(31*31);%均值滤波,要除以模板大小31*31
4 @5 N+ c" ?/ b( I/ j+ Yfigure,imshow(gd,[]);
0 D( f- z& L6 f( Z
( V M, G2 c: X( O+ X% y2 {( F经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。8 U/ r- [% F/ ?9 k& f, q7 U7 K
3 E1 ^5 J2 c3 M9 K
在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可: I=imread('wzz.jpg'); _. V! P, I/ \, y3 Q0 u
J=imresize(I,[256,256]);%将图像压缩或者扩展为256*2567 e! e$ z5 m. T5 c# c7 b
imshow(I);
$ Y! W/ D5 s2 a( q2 v1 Qfigure;
- O! Y U0 f5 K8 s/ Q* d! L3 Bimshow(J);
3 }) H3 i7 j) _* p- k
- S# r+ u6 d. n* z3 A7 Y# U, h G! C* D+ |% Z7 I
, I) a% Z2 i) T: K& l
0 Q6 R8 @5 h ~6 j! N6 k$ E |