EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑
. X3 l }0 d& U# W, X$ N' d; s3 B; C$ G; ^
在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
) \/ I. S8 ]5 b, J+ s# [, B2 @3 Q9 u' Z9 _% A- a
close all;+ v3 T7 ]% b5 ]! ?
clear all;5 }# I& Q. I% Q+ R, R7 h- k
clc;
& F1 u0 K) l5 F8 i1 `p = imread('ayst.jpg');3 ~. @1 l" {! }+ z$ Q5 o7 C ?! V) @
a1 = p(:,:,1);%只取彩色图像的R分量2 u m+ \ g1 j" n) W
J=imresize(a1,[512,512]);%将图像压缩为512*512
$ @7 M# n5 Y' M+ _: ifigure,imshow(a1);
5 Z+ T) s7 ~& Q, J6 r7 T% S6 G! ]figure;0 ]7 |$ z, h% e9 \9 o4 U
imshow(J);6 m; H/ i* @$ w9 g1 p# G% d
w = ones(31);
( b& b' p9 _: u3 gJ = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)
- O6 B& y! U' a$ V# n' K& x* tgd = imfilter(J,w);- o/ A5 [8 D% E8 A+ p* F
gd = gd./(31*31);%均值滤波,要除以模板大小31*31$ c$ ` X+ w+ e6 N
figure,imshow(gd,[]);2 c' }- X, a( Y6 ^3 k
9 t. W! b) t9 m$ l, C& E, h/ G
经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。: A9 u& b- z* g& D- N) x$ E
: H3 l) w: l9 s# m- E: N( ~
在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可: I=imread('wzz.jpg');3 c5 p4 C1 U2 m7 Y& d5 N' Q5 L; g
J=imresize(I,[256,256]);%将图像压缩或者扩展为256*256
; @+ q2 M N$ I7 P Uimshow(I);
# _1 R1 h5 X: Q5 Q& h" ^figure;
# ]5 A2 K& i% G5 [6 M: }* R0 l/ Iimshow(J); . T' G; u9 W9 A/ U) J
7 G- O/ A# T5 v( ]' M' @5 s' {5 B9 c
& i, ?) d" Q. H9 A- a) G
0 A$ b' V( r( O6 d; q: E( D
|