| 
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  " F9 Q; S' ^5 X& w
 . f" v' a1 X3 C6 R$ q' ?在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
 9 Q: q- _5 r; N* B, k0 f) a; ]" y  N5 }
 close all;. i& [: h# Q) Q8 E9 m. A
 clear all;1 f% p3 `& N; ]2 H1 c' s
 clc;9 Z# S; Q/ @4 w- g, b4 [
 p = imread('ayst.jpg');2 ?. s  o6 Z: K. Z  S) v8 Y
 a1 = p(:,:,1);%只取彩色图像的R分量3 E. n; K) h, v% @- d5 @) W
 J=imresize(a1,[512,512]);%将图像压缩为512*512
 . E. S9 S# j% {, o% q0 cfigure,imshow(a1);2 j+ c$ u& A9 }2 j/ A  \4 h7 g. D6 @" ^
 figure;
 5 {3 f/ [- P! P2 Y/ himshow(J);$ F4 p) u0 L$ k7 _3 M& W4 V9 }
 w = ones(31);! H7 ^* a: u: Y; v2 K1 {
 J = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)
 . \) e* @% T- S8 z, Rgd = imfilter(J,w);
 3 Z; F5 x1 u6 c' C3 Z! K. ]; \gd = gd./(31*31);%均值滤波,要除以模板大小31*31
 # X0 a& R; n% j/ h; ofigure,imshow(gd,[]);+ {2 @8 {5 P  l3 v' f7 m, H
 . L3 w% C- |8 ~0 y
 经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。  {& S8 q. V  b* r8 i" [
 
 * Y: O( |8 h& v% F, Q
 在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可: I=imread('wzz.jpg');' f; V/ }1 b& \! S3 Y8 @# K: |9 F) P. a2 A: f5 S5 OJ=imresize(I,[256,256]);%将图像压缩或者扩展为256*256, A: r4 l! T3 \6 K" P
 imshow(I);8 p- q9 e  c+ O8 T
 figure;
 % K  V0 |) R9 ^+ O7 Zimshow(J);
 - q4 E% O) q5 z3 A2 u. Y4 F" N
 
 # o6 X, D/ _* S; b% A1 N1 K2 @! k- {( _7 M6 P3 }/ L3 Z
 
 / F! ~- t5 u1 ^6 w, f! J. n: i; L
 |