EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑 3 e; C+ ~# H: M/ q0 O
' z0 U* g5 A2 K2 Q
在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
! q1 i. R: h6 o. a {- O4 O
1 c1 E2 d9 d1 d+ J- _/ K1 w J8 O+ Rclose all;& w) b3 Q2 ^& { x
clear all;$ d$ b. U) C4 q( Y
clc;& f6 f. \1 O0 j$ C
p = imread('ayst.jpg');# f( \- S( [* D1 D5 d5 L# e
a1 = p(:,:,1);%只取彩色图像的R分量; p1 b4 l. ?- G: K. s) P
J=imresize(a1,[512,512]);%将图像压缩为512*512. ]! O6 C3 {! |) ^* v
figure,imshow(a1);
, ^; I9 y# r# c3 n- B; Q, u, kfigure;5 ^; E$ R8 O4 j
imshow(J);" t" D3 ?$ |6 P6 _9 E/ S' _# B# c2 P
w = ones(31);4 u( M% t7 ^+ Y8 k. c
J = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)
9 Z# a y8 v1 d8 \3 F/ h, xgd = imfilter(J,w);
4 t/ P& I8 ], Z1 M* W$ @: [gd = gd./(31*31);%均值滤波,要除以模板大小31*31
# h% t* g" m s% u. \' |figure,imshow(gd,[]);. `: Z3 H9 g9 Q ^1 M1 Q8 b( ~
6 V: h ^( i- Y& X2 C# I
经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。
8 F* s+ L( u9 s
4 D; J2 c( _( R$ Z3 @& r在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可: I=imread('wzz.jpg');2 S' E3 V4 O! ^( C
J=imresize(I,[256,256]);%将图像压缩或者扩展为256*256. H* P3 F# O* \& I5 J
imshow(I);
3 m, c9 k. r4 } G8 qfigure;1 U' ?- q0 k( z2 \7 s& d
imshow(J);
% f+ z7 ^: v6 v7 T" v9 z) H
' z' t2 W6 {! _2 ^
7 |7 H) q& D8 A/ e# A3 N) \% {# k J# B9 ?0 K
' `2 L. G, Q' |0 I' a- D( i* ` |