EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB中的卷积运算
0 `$ u& N$ ]4 F* o5 l1 ^
! V1 M! L0 S6 n: {7 s+ U( ?5 ?- gImfilter:线性空间滤波 conv2:二位卷积 conv2(a,b,same):将b作为模版在a上平移,最后的矩阵大小与a相同 例如:a = q: O. B1 b; v! d e% j
9 E; h1 \# n( N* h# t+ I- W
- @7 g2 `4 K% [$ s8 a o
1 2 3
6 r( {% o3 R+ h* R& G! z5 q 4 5 6
: b! i* D2 m3 _# Z 7 8 9 b =( X) u* s- f/ q3 _! l/ m1 ~
9 w9 i* W) V7 ^3 o3 j3 n0 R
9 l. O0 O' L' Z. l7 h$ x" o! m6 ` 1 1 1
A6 B: _8 J. @; A7 Q# G6 W 1 1 1
+ Z) o+ M3 i9 E: r. V 1 1 1 conv2(a,b,'same’)= 12 21 166 t" o ]# E& [/ I% R1 {- \
27 45 33. K$ x' W6 _# U# i
24 39 28 这个是将b的模版中心位置置于a矩阵上,并且外圈补0. conv2(a,b,'full’)= 1 3 6 5 3* F" p( j$ |5 v( l, T
5 12 21 16 9
) L8 h. Z9 {0 Z- `, a 12 27 45 33 18
7 ]1 s0 k: ?- ^ D" n4 g# [ 11 24 39 28 15
8 q0 z+ Y1 e5 G7 I) D0 v 7 15 24 17 9 如果是full的话,总将b的最右下角元素至于a矩阵的第一个元素作为模版,然后开始平移模版,外圈补0 卷积的计算步骤:- }# t0 w+ x' v" d$ V2 _2 F' l
(1) 卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)' x$ m0 N8 i+ U& ^% t" ]; o! D e
(2) 移动卷积核的中心元素,使它位于输入图像待处理像素的正上方3 \+ J" O0 r1 _4 N9 |
(3) 在旋转后的卷积核中,将输入图像的像素值作为权重相乘4 D# x; N7 Y: M9 D0 g4 G4 {: [
(4) 第三步各结果的和做为该输入像素对应的输出像素 8 [3 ]2 ^7 `2 x2 v
请看用水平和垂直差分算子对矩阵处理后的结果,然后细细体会 a = 1 N. d2 z* F7 E; [/ h8 M
2 1 3 1) T* Q6 S* o* R5 m
1 2 1 2
% O% g/ }/ L) |: n 2 1 3 2: v6 _% U! g, ?. L( O% a
1 3 1 2, E) s" c- @ b+ U0 k6 g
b =
* M; {# d3 q1 f8 H8 l( I2 | -1 -1 -1- s% N+ n0 |2 B/ q: K
0 0 0
+ y( M. S0 K5 d! D" } 1 1 1
7 r. o/ ]/ h. J) i7 Pe = " b7 ]; U8 `- n
-1 0 1
. d9 W) J" v4 h/ W+ T0 r- w -1 0 1
. }8 u. E1 Y7 c% Q8 O4 j/ }+ T -1 0 1+ D( A- Z+ g3 h5 _0 j" c
conv2(a,b,'same')( T0 L) p% Q; I; ^- z
c =
3 }: N9 N7 q8 e: q -3 -4 -5 -3
8 m( s: _! F# [& z J 0 0 -1 -1' w4 z t" g- y8 g9 [
-1 -1 -1 0
# c+ [1 R& ^4 q3 B* w" @: }$ r 3 6 6 5
% |1 @3 `8 z: m& H7 z4 v1 D1 vconv2(a,e,'same')
' E8 G6 v6 C4 D* i! a3 b$ d/ @$ n8 ^d = ; T) b- }/ F% F5 E) c6 o. M
-3 -1 0 4
4 C" Y9 D2 l' ?- W" U -4 -2 -1 7! r" C" Q4 a7 K( }8 r; u* L
-6 -1 0 59 E3 F- U# `2 I7 K0 l2 w. V
-4 -1 0 4 ' y1 j2 q2 B' I! E0 l! h
C = conv2(A,B)返回矩阵A和B的二维卷积C。若A为ma×na的矩阵,B为mb×nb的矩阵,则C的大小为(ma mb 1)×(na nb 1)。 %在full情况下 imfilter与conv2区别在于没有将b首先180°转置,Imfilter(A,B,'replicate'),对于边界外圈复制边界值,而conv2的边界值为0 " w h1 q8 l c
, e5 M+ W8 l+ ~; G7 G
|