EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑
* }) H8 f8 F; ~5 Q. O3 S1 _; w! b5 y, J: S" y4 ^7 `, b3 y
在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
9 l6 Z# c; i' `
. h) P* C1 t2 O8 I0 O7 a Cclose all;
/ h8 W& Z5 y' s$ c- c) N1 Eclear all;
$ f" t+ ^1 h7 y- Z, B+ Gclc;
/ Y* J% E. f# v% mp = imread('ayst.jpg');
* Y3 C' v. g+ ?6 pa1 = p(:,:,1);%只取彩色图像的R分量
- j- G- |9 j0 E! }4 Y/ UJ=imresize(a1,[512,512]);%将图像压缩为512*512
@$ n6 X5 T: n4 vfigure,imshow(a1);
R% e& ^& Z- ^9 E& ~. Cfigure;, ^1 P( C, j+ D! z( k
imshow(J);
+ A- @: J' a/ T4 s8 |w = ones(31);$ A' W4 `& O8 S+ v! }7 W
J = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)' y4 ?% q/ Z2 R- i; H& A
gd = imfilter(J,w);
9 A4 i" f% G& tgd = gd./(31*31);%均值滤波,要除以模板大小31*31( x. b* ^4 q; }1 L% S" s
figure,imshow(gd,[]);
5 [: p7 Q1 D+ v: j: C6 T
# i" d# ?( }& {2 j经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。
1 X9 L7 r1 u: T) G8 B6 e9 Q! e9 o2 Z/ i' H9 B& N
在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可: I=imread('wzz.jpg');! q: y$ E3 a I: C6 B5 \9 k) i8 o D
J=imresize(I,[256,256]);%将图像压缩或者扩展为256*256& L1 {/ G5 y5 _
imshow(I);
4 `$ h& E" A3 R, B U( j8 y9 V3 Ofigure;
P4 J% b8 M H8 M$ y/ V8 X1 timshow(J);
& ^( t- Y' F1 h4 t7 v) B4 ~( I; S- E6 ?
; W4 D& t9 z' _ e
; V4 B7 t+ \& I8 a. ?8 h
- g$ W8 X! W p3 Z. N: M& Q5 z' n/ m$ L0 P
|