EDA365电子论坛网
标题:
MATLAB 空间域图像增强
[打印本页]
作者:
ubeautqq
时间:
2021-9-1 15:52
标题:
MATLAB 空间域图像增强
% \ x4 E# v6 [" U5 F3 h
方法包括:直方图修正,灰度变换,图像平滑化,图像锐化等。
# q& }# n$ b- T7 M2 A4 T9 }
6 t3 |. W; ]5 o$ l5 Z
卷积时模板是相对中心点做镜像后再对F位于模板下的子图像作加权和的。只有模板本身是关于中心点对称,相关和卷积结果才会相同。
6 W6 m" l3 N% X
* c- |9 T, }- E3 N
% 均值滤波 f = imread('../lena_AdaptiveMedianFilter.bmp'); %读入图像 imshow(f); %得到图5.2(a)的图像 w = [1 1 1; 1 1 1; 1 1 1] / 9 %滤波模板 g = imfilter(f, w, 'conv', 'replicate'); %滤波 滤波过程corr--相关 conv--卷积 figure, imshow(g); %得到5.2(b)的图像 replicate 重复的边界填充方式
! E: c6 N" E; O' p6 q9 }
2 K" b H- _- ] F& Y
2.png
(72.74 KB, 下载次数: 6)
下载附件
保存到相册
2021-9-1 15:51 上传
* C8 a9 g) N1 K2 e- b0 S
' A5 d: F7 w# _" g+ w4 r) ]! x7 b
图像平滑可以减少和抑制图像噪声。
2 Y% R* l' h$ v) J
E2 y+ f$ e0 `: N
平均平滑
. [% ?3 Q0 Y8 \4 `, @; ~5 V8 O
4 |2 J" x+ w1 R& ?; O+ g0 G; _5 ~
I = imread('../baby_noise.bmp'); figure, imshow(I) h = fspecial('average', 3); % 3*3平均模板 I3 = imfilter(I, h, 'corr', 'replicate'); % 相关滤波,重复填充边界 figure, imshow(I3) h = fspecial('average', 5) % 5*5平均模板 I5 = imfilter(I, h, 'corr', 'replicate'); figure, imshow(I5) h = fspecial('average', 7); % 7*7平均模板 I7 = imfilter(I, h, 'corr', 'replicate'); figure, imshow(I7)
4 s h6 N) ~& J7 |% O1 X$ d1 Z
# M5 ^+ h, f( R2 i: l
0 X, U& |0 V: Y& ?. Z% d7 s
高斯平滑
! y, V/ }0 a( x8 w9 R, h
4 n- X/ F% z3 V% v
I = imread('../baby_noise.bmp'); figure, imshow(I); h3_5 = fspecial('gaussian', 3, 0.5); % sigma=0.5的3*3高斯模板 I3_5 = imfilter(I, h3_5); % 高斯平滑 figure, imshow(I3_5); h3_8 = fspecial('gaussian', 3, 0.8); % sigma=0.8的3*3高斯模板 I3_8 = imfilter(I, h3_8); figure, imshow(I3_8); h3_18 = fspecial('gaussian', 3, 1.8) % sigma=1.8的3*3高斯模板,接近于平均模板 I3_18 = imfilter(I, h3_18); figure, imshow(I3_18);
* H/ y( j/ \& [7 L* S1 Y
7 F& z! x$ l2 a( t, q! d ]7 J
8 Q3 \! C- k% r! i
中值滤波
# m9 |" \' _; u5 s7 ?" ]% ?" o
: r+ E4 R3 t& E$ y0 j- d9 E
I = imread('../lena_salt.bmp'); imshow(I); J=imnoise(I,'salt & pepper');%为图像叠加椒盐噪声 figure, imshow(J); w = [1 2 1;2 4 2;1 2 1] / 16; J1=imfilter(J, w, 'corr', 'replicate'); %高斯平滑 figure, imshow(J1); w = [1 1 1;1 1 1;1 1 1] / 9; J2=imfilter(J, w, 'corr', 'replicate');%平均平滑 figure, imshow(J2); J3=medfilt2(J,[3,3]);%中值滤波 figure, imshow(J3);
x" r; y( t0 t7 J) W* n
/ t0 P! ^7 j) s6 q. `
3.png
(194.42 KB, 下载次数: 8)
下载附件
保存到相册
2021-9-1 15:51 上传
- d Q5 l6 K& T" f+ s$ ~: D
1 w5 d }' a+ G `) J6 _, W2 Z
, M: [6 x4 n( |" [% P
目测 中值滤波效果最好,其为统计排序滤波器,线性平滑滤波器在降噪时不可避免的出现模糊。低于椒盐噪声,中值滤波最好。
8 A* K. k4 v; B
; _" ?% N/ y9 M* ?1 E' k
7 Y8 t5 m0 W+ n& Z
- Z3 [& g" h! q4 H, Z/ w' R
图像锐化
: K) V7 l, A3 |* d
* m0 t- I/ T& @& v* F: S" O7 z9 [3 |
增强图像灰度跳变部分。锐化的对象是边缘,处理不涉及噪声。
1 p; V. x# s: u u( e
' ]2 [3 u4 m3 T, p
基于一阶导数的增强。
& \$ o- S( E0 _, W
8 w% ^; }7 Y" q3 ]+ A2 N. x8 ?7 B8 d, Y8 a
% 基于Robert交叉梯度的图像锐化 I = imread('../bacteria.bmp'); imshow(I); I = double(I); % 转换为double型,这样可以保存负值,否则uint8型会把负值截掉 w1 = [-1 0; 0 1] w2 = [0 -1; 1 0] G1 = imfilter(I, w1, 'corr', 'replicate'); % 以重复方式填充边界 G2 = imfilter(I, w2, 'corr', 'replicate'); G = abs(G1) + abs(G2); % 计算Robert梯度 figure, imshow(G, []); figure, imshow(abs(G1), []); figure, imshow(abs(G2), []);
# f9 N4 n) V" L9 j- X' A
0 ?1 y: I, J$ c n
' b7 j: U; [) Q; E1 T( I! n3 T) V& c
- F; x/ r, J' f# @3 H
基于二阶微分的增强。
, n* v2 t. J5 o/ L L) S
) L" j( h( |+ |4 i
% 基于3种拉普拉斯模板的滤波 I = imread('../bacteria.bmp'); figure, imshow(I); I = double(I); w1 = [0 -1 0; -1 4 -1; 0 -1 0] L1 = imfilter(I, w1, 'corr', 'replicate'); w2 = [-1 -1 -1; -1 8 -1; -1 -1 -1] L2 = imfilter(I, w2, 'corr', 'replicate'); figure, imshow(abs(L1), []); figure, imshow(abs(L2), []); w3 = [1 4 1; 4 -20 4; 1 4 1] L3 = imfilter(I, w3, 'corr', 'replicate'); figure, imshow(abs(L3), []);
4 s6 P+ \+ l& x; L8 ?3 s6 Z8 G
2 t' C4 j5 P8 N U# y
8 O* m( ?1 ?3 x3 C
) O' S: q8 ^9 |& {. ]" u$ {6 s, g
高斯-拉普拉斯变换增强。
2 d! a, I, O1 M
$ L' Z, L3 j$ f0 s7 \/ p& d
LoG算子的锐化 clear all I = imread('../babyNew.bmp'); figure, imshow(I, []); %得到图5.14(a) Id = double(I); % 滤波前转化为双精度型 h_log = fspecial('log', 5, 0.5); % 大小为5,sigma=0.5的LoG算子 I_log = imfilter(Id, h_log, 'corr', 'replicate'); figure, imshow(uint8(abs(I_log)), []); h_log = fspecial('log', 5, 2); % 大小为5,sigma=2的LoG算子 I_log = imfilter(Id, h_log, 'corr', 'replicate'); figure, imshow(uint8(abs(I_log)), []);
$ H$ A2 ?" h. P; y& V
$ N) X! o# G6 ]
! r- b9 R1 ~$ m. o
8 m6 T2 K/ { [' l8 w
作者:
hdubsgyd
时间:
2021-9-1 17:42
只有模板本身是关于中心点对称,相关和卷积结果才会相同。
3 [6 J# n" ]: h; K
作者:
SsaaM7
时间:
2021-9-1 18:04
卷积时模板是相对中心点做镜像后再对F位于模板下的子图像作加权和的
作者:
smileqq
时间:
2021-9-1 18:04
图像平滑可以减少和抑制图像噪声
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2