EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑
+ h T) X4 ~6 Q7 U# k$ O0 V
! M- g( a+ N5 d- b6 [/ l9 R在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
$ i7 |7 K7 T6 m6 I! b: C) d3 {, ]- j6 x' H: b2 Y7 s* Q% H) v
close all;
/ a4 K+ ~# f3 ? w! Qclear all;/ T* B' c; D" B0 m: ^% o/ t& S9 e2 y
clc;' X: m6 n0 n! Q/ }, \+ O$ P
p = imread('ayst.jpg');7 ?6 O1 i$ c: L3 |1 B' l4 f1 r9 ]
a1 = p(:,:,1);%只取彩色图像的R分量5 {2 y* Y! E' W, u. I
J=imresize(a1,[512,512]);%将图像压缩为512*512
; Z* ~) N# ^- b. ?6 t2 J$ xfigure,imshow(a1);
. X( k" M! a# \2 x$ V Pfigure;
: B; n7 T7 @" ximshow(J);
7 c8 t9 a) Z( A1 X- Kw = ones(31);6 p; o2 K A% q& B
J = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)8 L: c; P4 a0 a# ?5 H( f/ S
gd = imfilter(J,w);, u: K# D" N" w Y( S+ e/ Q$ x
gd = gd./(31*31);%均值滤波,要除以模板大小31*31
- @# \5 I \0 C/ O7 }) v( t9 efigure,imshow(gd,[]);* o2 V4 H5 K! [" f- t; @
% O1 p' U% ~, ?
经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。. i9 h. o5 r& B9 Y: l, l" l
7 t. E4 e( E6 v. D, ?1 Y& }) R在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可: I=imread('wzz.jpg');- r' H- B) b; {& W5 z
J=imresize(I,[256,256]);%将图像压缩或者扩展为256*256
- N+ B. n' c' Limshow(I);
+ ^% _3 {8 y- b+ ufigure;1 P5 d) c& @; Q
imshow(J);
0 b( W% `/ r( A) y+ S. ]! H+ { ^8 _; E/ l
2 U" u) ~3 c* M1 a/ c3 O% p [! \" X' ~( C* N7 P
0 r( m) S) F. H* u
|