EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB中的卷积运算
% }8 S, {# @; M
' ^& [, _" c! s, GImfilter:线性空间滤波 conv2:二位卷积 conv2(a,b,same):将b作为模版在a上平移,最后的矩阵大小与a相同 例如:a =
8 h2 W) q( u: n! t2 p1 c2 j: m0 g
7 }8 H" [8 _* y3 K( J2 @
/ ^; G3 R- y$ H: k2 X& B2 R) b7 |# _ 1 2 3
# G1 s. ?! J7 A; W7 N( D 4 5 64 I0 f8 | T5 S _0 L6 j& H
7 8 9 b = K- U5 I7 G. D6 D
! ~) \" I. s! }$ l) r' P2 D! f) I- O& E
1 1 1! b. ~) t* G1 i6 w- ], o5 U
1 1 14 b. b1 x0 j- e, g
1 1 1 conv2(a,b,'same’)= 12 21 161 ~$ I2 S$ L; S: z: j8 p, O
27 45 33
. e/ E6 Z" t' q; v! z( q 24 39 28 这个是将b的模版中心位置置于a矩阵上,并且外圈补0. conv2(a,b,'full’)= 1 3 6 5 3+ T% m- Q0 ?3 _ K
5 12 21 16 9
* q9 @/ R+ `8 f6 M7 e; v& ?( w7 @( ^9 P 12 27 45 33 18$ Q8 E: n; A0 Y. G8 h3 S) b
11 24 39 28 15
2 I/ t: I; m) [/ W/ D( h7 p 7 15 24 17 9 如果是full的话,总将b的最右下角元素至于a矩阵的第一个元素作为模版,然后开始平移模版,外圈补0 卷积的计算步骤:
9 A( C6 J5 l: ^" |, P(1) 卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)$ l4 A! S3 _9 A: F* Z/ g
(2) 移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
$ ^3 F; c% F# j* Q* }(3) 在旋转后的卷积核中,将输入图像的像素值作为权重相乘0 p: B5 o# V8 o! X1 c2 b9 N
(4) 第三步各结果的和做为该输入像素对应的输出像素 5 `+ y$ E4 S( |" H! d/ }
请看用水平和垂直差分算子对矩阵处理后的结果,然后细细体会 a = ' \0 r* b0 A; Z) k: E& i8 B4 _
2 1 3 11 @* M8 q7 s6 J( B. Q
1 2 1 2" n y: z4 R0 C; d/ q7 i' u; t
2 1 3 2; Z, Z; M/ p' } K4 V
1 3 1 2
G: }" P9 F" T( S; }3 _b =
4 X% x) m2 m. z -1 -1 -1
$ D6 k) P* ~' o 0 0 0" g7 G, v) Q/ j1 {* u
1 1 1
* @" j4 d/ K: H" J+ b! ^e = ' ?. K2 S% ]/ ]0 X) E7 X& ^
-1 0 1$ U9 i; K+ N$ b! k, D, B$ ?6 Y6 O5 l' H
-1 0 1" C, z0 u2 w: O& T7 w& ~
-1 0 1
; q: X/ |# l+ O8 v) [3 mconv2(a,b,'same')8 E4 O: B4 n3 }) Q
c = % O; m8 D; m# N
-3 -4 -5 -3% `5 c4 ^9 ~3 }: H# ^7 B- B, j
0 0 -1 -1
4 @1 M2 t+ W! j/ K' h- v2 y -1 -1 -1 0
" J! V5 @1 [+ `3 A. ~( g 3 6 6 55 [* p( ]3 i6 C; c) |6 r4 u
conv2(a,e,'same')
! k% P& ^# M5 v; K& Zd = - Z* I1 r: c" v" B5 ]
-3 -1 0 4 M& [3 V4 \3 u7 O* Q+ q- e
-4 -2 -1 77 m2 X- S: h1 ?( D+ `
-6 -1 0 50 N, ?" n& H5 Q0 ?" g
-4 -1 0 4 1 R2 ]5 A. Q% i5 }8 E5 v
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
! K- }2 H2 }. u0 u% X, o
% p, E m" y+ e3 w- g3 R |