|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
8 l0 y. V3 r g9 j5 fMATLAB源程序代码分享:MATLAB实现图像的中值滤波 均值滤波 维纳滤波/ D" M6 c, }2 G7 C9 a; b
%% 读入原始的彩色图片, 并显示
$ T: D$ D. X( K' p5 Sclear;clc;close all
0 [) j+ f6 o% [I=imread('tupian.jpg');
3 i/ w1 Q% `0 W! x1 Wfigure
# j4 q o% o) ^' {4 M8 zset(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]); % 设置 figure 窗口的位置和尺寸" [% J" L. z3 H6 [- A
subplot(2,3,1)/ `' y( P( o% v# V; y
imshow(I)
$ a5 i. x N# qtitle('原始彩色图像') 2 Y- R$ v& A7 g% P4 E
9 s4 K$ b/ f n( u+ c%% 将彩色图像转换成灰度图像, 并显示
% e( X! @& Z) R% T5 oI=rgb2gray(I); % rgb 图转换成灰度图
8 a& q/ [! q, K/ h: h; @" O! psubplot(2,3,2)# r2 Z* p: x) h2 j4 C9 \
imshow(I)& m i4 T v6 |% s+ x
title('原始灰度图像')
8 t5 ~# t' v1 Y0 W9 w0 i& w$ X1 Q( M2 i% l: |% K. d1 B
%% 给灰度图像添加椒盐噪声, 并显示噪声图像' b8 g9 V" F4 K+ p+ _5 l
I1=imnoise(I,'salt & pepper',0.1); % 原图添加椒盐噪声, 得到添加噪声之后的图 I1- J/ x" {5 q: p( l& R) ]. `. E
subplot(2,3,3)
/ ?' f* h* M$ x8 l Timshow(I1)2 X4 ]$ |6 w1 V1 Q
title('添加椒盐噪声之后的图')
. s6 ?6 A+ }6 D. e9 o6 b3 _' z6 I0 k( k+ x
%% 对噪声图像执行中值滤波, 并显示. C( v$ W5 K3 [
I2=medfilt2(double(I1)); % 对 I1 执行中值滤波
' N# u# T7 y0 s* _7 J5 X. Msubplot(2,3,4)
* y2 U, m/ ?9 u5 U5 yimshow(uint8(I2))4 [0 r1 Z9 T; ~/ B
title('中值滤波之后的图')2 u* p1 N# `# _
6 |5 t3 A" ?: j n+ i%% 对噪声图像执行均值滤波, 并显示
r# a% m' n( Eh=fspecial('average',[5 5]); % 定义 5*5 的均值滤波器模板: X' I8 c9 f( m- q# _; \. s: K
I3=filter2(h,double(I1)); % 使用均值滤波器模板, 对 I1 执行均值滤波" A8 x' z$ G; i y' }7 ?; M2 J3 n8 |
subplot(2,3,5)
`1 z: `6 g; K! {; ^imshow(uint8(I3))" D* d! K% X6 @
title('均值滤波之后的图')
" C: R Y8 \ Q% J7 d3 a. y1 [ ?; y
9 {" @* z* U- _%% 对噪声图像执行维纳滤波, 并显示
: W6 N6 [" X/ ~& OI4=wiener2(double(I1),[5 5]); % 对 I1 执行维纳滤波! V9 S1 q, m6 n5 }
subplot(2,3,6)" R% ^4 b! {% P2 `6 d
imshow(uint8(I4))
& Y. V' d8 q6 Y8 Vtitle('维纳滤波之后的图') |
|