|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
. P% _" B3 P Y9 A1 J
MATLAB源程序代码分享:MATLAB实现图像的中值滤波 均值滤波 维纳滤波
6 B+ _" B% w- r* q%% 读入原始的彩色图片, 并显示
: C' V0 `# E4 c Wclear;clc;close all( T5 o+ @! L- z8 ^ a, Z
I=imread('tupian.jpg'); 3 }+ r9 B3 b! Q' Q! C" W, ~$ m
figure( J0 f: z; r. }, E; f
set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]); % 设置 figure 窗口的位置和尺寸
* z' T c$ \* z9 ]( |3 v% ]subplot(2,3,1)1 x7 N/ d& `9 t3 c; z
imshow(I)
8 x5 K( x. @/ G* q; o3 z* B% I2 ptitle('原始彩色图像') 9 e, c+ L2 Q' ~0 W3 u( F
2 v1 S3 l1 _1 ?3 K8 F
%% 将彩色图像转换成灰度图像, 并显示
6 p8 S* Q7 B8 C5 U8 F4 lI=rgb2gray(I); % rgb 图转换成灰度图
& Z s+ X @# }2 e, H' U3 b7 Xsubplot(2,3,2)6 H6 g ]9 e6 T0 B* N
imshow(I)5 w! d- ?. N2 W2 i) M. G
title('原始灰度图像')
* b5 l. ?9 ~ P) b {' n# o2 x7 W: R& s/ L4 q
%% 给灰度图像添加椒盐噪声, 并显示噪声图像; q; m0 O! f- p7 F0 S I
I1=imnoise(I,'salt & pepper',0.1); % 原图添加椒盐噪声, 得到添加噪声之后的图 I1, g4 S2 y6 I# x4 ]4 D$ e9 ^
subplot(2,3,3)" @2 a* ?* J4 `7 }
imshow(I1)
) v5 j' V* X6 i; Qtitle('添加椒盐噪声之后的图') $ O% F p- G0 S* U: K
$ @+ G0 b1 C, I; c/ ]2 `1 |
%% 对噪声图像执行中值滤波, 并显示
7 G! q* A0 ? |) L! Z* I+ lI2=medfilt2(double(I1)); % 对 I1 执行中值滤波+ Y0 H: L- _* I, r5 U8 L
subplot(2,3,4)
2 m* o# u, C: a* X) R: J4 Z- A) ], [: himshow(uint8(I2))
5 v% [# y6 z3 H' i6 {/ ctitle('中值滤波之后的图')# d& c5 i, s! N
' t% `% h( s6 r4 ]) H6 C1 d- R%% 对噪声图像执行均值滤波, 并显示
& F: w, k$ h6 L+ k) m5 Lh=fspecial('average',[5 5]); % 定义 5*5 的均值滤波器模板
9 ^+ ]4 R- L2 S$ X! X' uI3=filter2(h,double(I1)); % 使用均值滤波器模板, 对 I1 执行均值滤波
6 {; \1 J( b8 g; ^subplot(2,3,5)& I3 g7 H# G8 u& D1 Q% ]0 I
imshow(uint8(I3))3 G+ v/ [/ J/ u# ~6 a& r- R) e6 H
title('均值滤波之后的图')& c" i- a6 T6 H0 l+ a4 p
) Q; }7 e# f4 _0 K# q# ^
%% 对噪声图像执行维纳滤波, 并显示
3 F" \$ B6 [: S8 aI4=wiener2(double(I1),[5 5]); % 对 I1 执行维纳滤波
0 D! F) }% Q9 X3 i. h0 Z0 r+ hsubplot(2,3,6)
8 x% ?+ |) _6 N, I1 `imshow(uint8(I4))
3 m L# C) {! P4 l5 h: l5 ititle('维纳滤波之后的图') |
|