|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
2 ?' ~3 N0 z0 [2 @* }MATLAB源程序代码分享:MATLAB实现图像的中值滤波 均值滤波 维纳滤波: \0 q2 d% Z8 I6 r# j. n9 n: r2 r: M1 h
%% 读入原始的彩色图片, 并显示
; e, [. G9 X6 dclear;clc;close all
- Z. u+ i& A: N. ^8 ^: F" lI=imread('tupian.jpg');
' m: J* w" p- b* W4 ffigure- y" e2 o+ @$ S: Z; W. b
set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]); % 设置 figure 窗口的位置和尺寸4 @4 M$ k/ D. u. t
subplot(2,3,1); z4 f0 y4 J6 S8 o' E; W2 U }* \
imshow(I)
( {& V: D8 ~* a7 A7 @title('原始彩色图像') 8 Q0 M3 g% d# T% n$ v
6 X: f/ i2 o* o/ R. K
%% 将彩色图像转换成灰度图像, 并显示" s" c/ Z# f `; P/ f
I=rgb2gray(I); % rgb 图转换成灰度图4 a4 {, ^; @( `5 r* G
subplot(2,3,2)+ a" X# ?. i* i; f
imshow(I)/ H* h F$ K/ @. B5 }
title('原始灰度图像')
, l! W3 Z! E9 l; ^8 R5 M
1 e y1 K& C% H" U%% 给灰度图像添加椒盐噪声, 并显示噪声图像# W8 p3 l+ t* S1 j( u9 p0 _# h
I1=imnoise(I,'salt & pepper',0.1); % 原图添加椒盐噪声, 得到添加噪声之后的图 I1
" K* A. r6 R- b: O' c- wsubplot(2,3,3)! u! N% z$ c ?5 Z, x9 L8 L, x
imshow(I1)( w+ z. K8 H; `/ L; Q. ?3 z" P n b
title('添加椒盐噪声之后的图')
5 U! S3 Y% h* A6 S; ?* \$ }/ }7 m/ F$ ^$ L$ Y
%% 对噪声图像执行中值滤波, 并显示
" @* u9 Q8 Z9 u. C& RI2=medfilt2(double(I1)); % 对 I1 执行中值滤波: E, Z: }! Q0 i8 \' N
subplot(2,3,4), Y/ n7 \. x7 c+ N
imshow(uint8(I2))! @# W, o" e# K$ y8 [
title('中值滤波之后的图')
! F- w# o6 F& Q8 H Y% y1 {$ S. a3 x# w: h1 o. s0 z7 x" U
%% 对噪声图像执行均值滤波, 并显示6 s$ R, G9 t/ b& R/ C' _: ]) m
h=fspecial('average',[5 5]); % 定义 5*5 的均值滤波器模板
6 [. v3 _; |1 x9 |+ HI3=filter2(h,double(I1)); % 使用均值滤波器模板, 对 I1 执行均值滤波
' }( j5 j4 F. O3 C1 c9 O/ xsubplot(2,3,5)
2 K% N/ R) ?4 s1 \imshow(uint8(I3)). F! {, k0 g! T7 Z7 s: A' a5 u& W. [
title('均值滤波之后的图')
3 v( f* o/ ?& @' ]/ Y3 H
& j. m* B+ R* E. W! j# ~%% 对噪声图像执行维纳滤波, 并显示
6 H4 d6 ~# J! I# `2 YI4=wiener2(double(I1),[5 5]); % 对 I1 执行维纳滤波2 g0 I6 L t6 k* F" b9 [
subplot(2,3,6)
" H' I' m* o" D, zimshow(uint8(I4))
8 |0 o3 q" j! W4 Ntitle('维纳滤波之后的图') |
|