|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
+ P. ]0 g7 C- |* i7 mMATLAB源程序代码分享:MATLAB实现图像的中值滤波 均值滤波 维纳滤波
, j P4 d8 }5 J, b5 Y) Q, u%% 读入原始的彩色图片, 并显示4 j3 S* f" w* F$ Z
clear;clc;close all [% d1 X+ l0 j; G8 {) ~4 l
I=imread('tupian.jpg');
+ a' r" {/ r6 gfigure# p) k% Y# c S d( `- x/ T/ `
set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]); % 设置 figure 窗口的位置和尺寸
0 Q0 k3 i1 i8 P, h0 Z Msubplot(2,3,1)/ o/ x7 ^- d- S/ m/ G% @1 d' V
imshow(I)
; K& C: \7 ]1 h0 n8 j9 i7 Stitle('原始彩色图像')
& g0 Q2 H1 |. _0 C* S/ g
; ^8 l d1 b$ @! ] T%% 将彩色图像转换成灰度图像, 并显示3 g; N+ ~2 I0 \
I=rgb2gray(I); % rgb 图转换成灰度图. j4 V, Z1 k9 c, [/ H7 U
subplot(2,3,2)
" T- b6 {4 M. R' N7 C( Y& Bimshow(I)
) m6 t8 @/ n6 Ltitle('原始灰度图像') ' t0 m1 i! [6 z3 j
2 ^/ G. |2 i" h) [9 k1 P%% 给灰度图像添加椒盐噪声, 并显示噪声图像- e$ j/ |& ]+ w/ Z
I1=imnoise(I,'salt & pepper',0.1); % 原图添加椒盐噪声, 得到添加噪声之后的图 I1& M5 Q3 i1 K" p5 x; B; I
subplot(2,3,3)
' H+ l) G& M; f7 J6 c- e1 N, aimshow(I1)- P' I& _" v. |3 s& P
title('添加椒盐噪声之后的图') / m0 g1 ]' Q0 s3 s
2 O+ t% N, j- v4 U: C: N1 @. c
%% 对噪声图像执行中值滤波, 并显示
& e! \5 s9 J) iI2=medfilt2(double(I1)); % 对 I1 执行中值滤波
7 o4 `2 o0 c2 l4 }3 V4 Y0 rsubplot(2,3,4)5 J# C7 v4 e U0 p9 g
imshow(uint8(I2))
# R. D8 o; F1 [5 x6 ?title('中值滤波之后的图')
$ p( i' L3 Y* o# d+ x& g/ Y7 T5 m+ {1 L0 v7 \3 w
%% 对噪声图像执行均值滤波, 并显示$ M! B# f0 m: j- T: U0 N
h=fspecial('average',[5 5]); % 定义 5*5 的均值滤波器模板
* p/ L4 x& Z8 s" KI3=filter2(h,double(I1)); % 使用均值滤波器模板, 对 I1 执行均值滤波) a- A; _( g, y, h1 d
subplot(2,3,5)
' t c' k9 w, T; }& w* Simshow(uint8(I3)) w. M. j9 A6 C9 B( t; X
title('均值滤波之后的图')5 n$ W7 L8 f% B( x& Y0 H" w' d9 q) _
$ D; p! G6 m8 g( u9 I* K3 k+ C
%% 对噪声图像执行维纳滤波, 并显示* n4 f- \6 F6 Q2 o9 U
I4=wiener2(double(I1),[5 5]); % 对 I1 执行维纳滤波/ ?1 }1 m/ f: X9 n
subplot(2,3,6)
2 e/ |% {( r [( K" l9 u% [imshow(uint8(I4))* D& @4 b! X" V- K
title('维纳滤波之后的图') |
|