|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
9 q4 d w( t; w# V# T7 g4 ]
MATLAB源程序代码分享:MATLAB实现图像的中值滤波 均值滤波 维纳滤波4 k5 R& K6 q: K- d7 D8 R
%% 读入原始的彩色图片, 并显示& \( R* O1 k0 ?" R# e0 m; i; H
clear;clc;close all
' ?$ ?6 M! s7 }4 tI=imread('tupian.jpg'); g; I5 T- c B4 Z
figure! S; K8 J: l0 D: b/ \* @
set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]); % 设置 figure 窗口的位置和尺寸+ l/ E/ ~; m7 @5 L- G$ ]
subplot(2,3,1)6 T+ O2 q7 z, F; i/ ?
imshow(I)
: c0 U5 \, y `# k4 G/ T7 Ztitle('原始彩色图像')
2 w, U3 S& @/ w1 U( T' S- n5 R0 c6 p& H( ~8 m
%% 将彩色图像转换成灰度图像, 并显示- h9 L- L$ s# e0 ~' H# A$ l
I=rgb2gray(I); % rgb 图转换成灰度图, s" X7 `; d- d; d# U, T
subplot(2,3,2)
" ]6 |2 C: F% e7 fimshow(I)
7 E, V* v" q: M8 N( a5 Wtitle('原始灰度图像') 9 T# |+ w4 l( k7 a5 q) o, v$ b
( J3 S7 c7 C% b%% 给灰度图像添加椒盐噪声, 并显示噪声图像# {& Q4 L9 U+ D. x- ]) J
I1=imnoise(I,'salt & pepper',0.1); % 原图添加椒盐噪声, 得到添加噪声之后的图 I1
- s) r# \1 k! rsubplot(2,3,3)# M O, I( b( ^- y2 p* \
imshow(I1)
! r4 z# ?$ w, z& f( r" Utitle('添加椒盐噪声之后的图')
( l; B! R$ }- x6 w
0 [- W7 I6 h2 I* L2 K E5 S%% 对噪声图像执行中值滤波, 并显示" w+ z# I7 X! ` J4 W
I2=medfilt2(double(I1)); % 对 I1 执行中值滤波- K, `8 o; W S5 h4 e- }
subplot(2,3,4)
8 L* ?" K3 U! d5 I4 T9 g: D# `8 Pimshow(uint8(I2))
3 ?+ _! w5 g0 p% Gtitle('中值滤波之后的图')( K' ?7 S6 M' {2 b2 `/ o
5 Q0 \4 m- z3 Q2 V) @
%% 对噪声图像执行均值滤波, 并显示5 B+ r' R. G# G; | \
h=fspecial('average',[5 5]); % 定义 5*5 的均值滤波器模板& y+ }& Y* s/ Q+ X! o* w
I3=filter2(h,double(I1)); % 使用均值滤波器模板, 对 I1 执行均值滤波% P% q) i& G: [% k# ~
subplot(2,3,5)- d' e5 }( Z: d" P" q% j2 I
imshow(uint8(I3))
: f. X) U( ]3 Y- c' `title('均值滤波之后的图'). D& p2 a/ F/ l, M: Y
( h# e1 S4 d1 G% |+ o, ^%% 对噪声图像执行维纳滤波, 并显示" t4 t+ ~% e8 Q
I4=wiener2(double(I1),[5 5]); % 对 I1 执行维纳滤波
# S4 S B4 K4 E* N! y5 H5 R& l1 Hsubplot(2,3,6)% {" ~% t# u" V/ X! t
imshow(uint8(I4))6 B% [% i, S' c' D, J; A- i
title('维纳滤波之后的图') |
|