EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑
3 n: G- L( i) S. `. d ?
8 L# \8 @! k2 d" d6 x$ O2 e1 D在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:. D! M7 |( j" z5 q6 R, o% `* g
# ^3 W& _1 i) E. @close all;1 ]: x1 i& B9 ~2 ^; c9 Z% M
clear all;; E4 h0 |) }$ C! t% N
clc; U, T! b& x4 N o2 Q# ]9 y
p = imread('ayst.jpg');
' h& o! j, R6 Y/ G, ]. S: E6 ]a1 = p(:,:,1);%只取彩色图像的R分量) u; N6 E' e4 | P$ I1 P2 f7 @
J=imresize(a1,[512,512]);%将图像压缩为512*512) E0 g( k# ?& D4 u4 n Z2 ~
figure,imshow(a1);8 |+ T- V, D y n- n2 K! y
figure;
! a, t k$ _2 v" U; \0 eimshow(J);
0 }# D2 M! ~7 D% Uw = ones(31);; ]( V) a" V9 @7 e" K4 p
J = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)! A0 a! K E- C& v# J% R
gd = imfilter(J,w);
( N" D/ M' x) s8 M) dgd = gd./(31*31);%均值滤波,要除以模板大小31*318 p9 J4 W" c/ n( P3 f# m* O! }
figure,imshow(gd,[]);# z: A# c% M7 `) r6 K
/ g1 h; J" ]' L4 F" d+ @& G
经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。0 G, {5 ?! m6 Y7 z" ^8 n
: O) C3 q) T. O3 y2 y在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可: I=imread('wzz.jpg');
1 O1 |7 r7 c8 w& g* X& mJ=imresize(I,[256,256]);%将图像压缩或者扩展为256*2560 f3 A% }8 V; j+ g. T: m* e
imshow(I);
4 k4 }/ O# l( t o b- v I) r8 `figure;
# p4 O. C( k- ^+ I3 [5 [imshow(J);
" k, c) x! b- L& B
: c( A. p8 G4 @! J, ?3 ~
/ Q( ]' g% w1 F6 s7 f
2 ?& L: D; C; h9 |. t. _& G4 N ]; h, U
|