EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑 : ]2 E" q* Z& k1 G
; |: X$ J2 U9 c8 Y2 k! a+ }
在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
" R: V `* R* t6 q; Y5 [: g( p8 v+ w
close all;
, @2 D6 G! B+ [6 C# d! xclear all;
8 ~9 J" K, G A% h1 p0 Oclc;
- g. B6 v/ b- }% j% `p = imread('ayst.jpg');
$ w4 G" x; w r( B" j9 d# ta1 = p(:,:,1);%只取彩色图像的R分量5 G# Q/ N1 y( m* t
J=imresize(a1,[512,512]);%将图像压缩为512*5126 ^1 i! Q T+ F* W; n9 b
figure,imshow(a1);
^" E) u* E$ D* e- |5 q/ N( o" \) yfigure;
; `! i) d' c( p7 X1 cimshow(J);# |1 [0 \6 Z+ z7 }/ \4 g" p. l1 t
w = ones(31);
% {8 w/ R" [3 k6 `; l5 rJ = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)- t# k" {+ R5 h6 y" Y, Y P
gd = imfilter(J,w);$ l) f* M8 p% A' f3 ^
gd = gd./(31*31);%均值滤波,要除以模板大小31*31
+ I! K1 x' U' u% K. G- {figure,imshow(gd,[]);
9 q- I8 }( Y2 k0 c; z) H! q+ Q8 i3 r! _ S! C. O) G
经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。
1 H8 W# h( g1 C% I0 X+ {% G- E
* d, |" f* p) \! D在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可: I=imread('wzz.jpg');
8 d7 m& A* S0 {, FJ=imresize(I,[256,256]);%将图像压缩或者扩展为256*256
6 D! @$ `5 @% K: yimshow(I);0 z* Y: f+ A0 A# x6 W/ K
figure;5 f, \; Q$ x; m* c. `* ]
imshow(J); Q0 [% Z( h9 A [- s, |
0 Z+ W, P4 @8 V" j% c
+ g9 M" K o) ~- e0 g- Y
- x+ I/ {9 W7 _8 s7 y2 a
! K+ e/ `9 u/ ^( g |