EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑
" ]( Y0 T8 r# Q! O4 g, K/ G+ J6 R. T5 x) X5 _ V
在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
\2 c H7 \- d3 l- ^
6 X" c ~# w& u2 u% Wclose all;& \5 q2 s D7 P+ S
clear all;$ O! Z. n8 T; Z
clc;; Z$ ~4 i% M; ^9 Z. i
p = imread('ayst.jpg');
2 ?- P9 Q8 C% h/ F9 Ea1 = p(:,:,1);%只取彩色图像的R分量% q" Y5 z2 k/ h, H$ S
J=imresize(a1,[512,512]);%将图像压缩为512*512
" |5 O1 |: `9 [0 Sfigure,imshow(a1);: p% [! T4 p% i# F8 Z
figure;8 {$ B, n& \1 f/ g( Q% J9 f1 N/ L
imshow(J);
* G3 I4 t$ v. L0 @, L7 C4 ~w = ones(31);: j9 A+ c0 q `# C2 d; y' V
J = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)
|) l/ R" |+ u: e' q0 x9 }gd = imfilter(J,w);6 ~7 A6 A( `; N* z6 {1 Z
gd = gd./(31*31);%均值滤波,要除以模板大小31*313 h+ T/ A* }- n1 N n9 p$ F
figure,imshow(gd,[]);
& `7 U" `, u i7 V
1 j3 ~& N' Q4 f) D经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。
2 |+ h+ z* c/ g# a# c9 e1 k+ o: h' B+ ]' x5 p
在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可: I=imread('wzz.jpg');
i% B( K2 g( u6 dJ=imresize(I,[256,256]);%将图像压缩或者扩展为256*256: Y: J- y4 C0 X4 M# L. ?! Y, \; u
imshow(I);0 h; f; E( ? s9 y8 b
figure;: t" B, `7 r: s( g! @+ y* c
imshow(J);
' {4 q6 `- E# f7 i
. @8 t6 M& W) Y; O
9 s1 C Q! o% }; z" N- ?2 T; F3 V f
5 P! Q/ O( e2 U6 y5 I( T p6 u. S |