EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB中的卷积运算
9 w2 J/ u% Z5 \, H* U: U% W
7 [1 ]1 ` Q- A2 {7 F& [6 BImfilter:线性空间滤波 conv2:二位卷积 conv2(a,b,same):将b作为模版在a上平移,最后的矩阵大小与a相同 例如:a =
# c; F. I" {- N8 f7 l0 Q3 [% @- ?7 \& T% h t
* P, O8 J8 T( ~; m: X" G$ G$ L0 T 1 2 3
* W2 l. L4 J3 Z2 V; E) x 4 5 6& n0 l3 B3 W: [, E' ?9 O' i4 f
7 8 9 b =* k* |$ _0 h; b
/ G! T5 g E; Y8 ^( H G
' o) X$ n7 K3 r1 j$ v: N 1 1 1
8 R+ Q( B# B( } j 1 1 1" ]: O6 `, Q% K9 }
1 1 1 conv2(a,b,'same’)= 12 21 16, d- ]8 R) L7 ]1 ~9 k* W
27 45 33, v/ Z" G- j. F% M& B( |- Q
24 39 28 这个是将b的模版中心位置置于a矩阵上,并且外圈补0. conv2(a,b,'full’)= 1 3 6 5 3
[; g* ~* v2 g+ g% { 5 12 21 16 9
8 K$ G2 A' n) P% z. w# j1 P 12 27 45 33 18, D% [' v; `5 G0 n
11 24 39 28 15
, c- B+ \/ S k 7 15 24 17 9 如果是full的话,总将b的最右下角元素至于a矩阵的第一个元素作为模版,然后开始平移模版,外圈补0 卷积的计算步骤:
9 V t# V [2 c) c9 p& W; N(1) 卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)
$ ]/ B" n5 m9 c) _4 C(2) 移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
1 J$ D( C, ?' l9 q(3) 在旋转后的卷积核中,将输入图像的像素值作为权重相乘0 ^" X4 i# z& |4 ~, [: \
(4) 第三步各结果的和做为该输入像素对应的输出像素 * E8 \0 d( L- h
请看用水平和垂直差分算子对矩阵处理后的结果,然后细细体会 a =
: x0 h0 n% ?# Y% G! v) Y/ T! `3 { 2 1 3 1
- D+ n& z% s% W 1 2 1 2
7 i( G; o, U; n8 ~; ~# a/ h) z 2 1 3 2
; ]% a, o5 m: Y6 J+ @! H 1 3 1 2
; m% r+ e! S7 j! e2 \/ G( z y) eb =
, h: f/ r6 z% N* [9 ` l6 t$ I -1 -1 -1
! e. [" C2 l1 Y+ o% ~+ |5 E 0 0 0
, Q( u0 n% C& T( `: a- s: r 1 1 1* G" s5 z9 u8 f3 u" V
e =
$ @0 c. z: G7 M, E9 m+ ?; H1 Z -1 0 1% U$ \6 A- X0 }3 z8 M
-1 0 1' v$ E- h$ j$ N* V L: {
-1 0 1
3 _( `( v& m3 x2 tconv2(a,b,'same')# ], _1 |! v% m" d6 t
c =
+ c" l- z9 p7 Z6 e: k% Y# a -3 -4 -5 -36 H/ p7 L" e, V7 d& P
0 0 -1 -1
! ?/ }: T! C1 ~" o. ?8 Z4 D -1 -1 -1 0
& q" x& B, ]3 t; P% q6 u7 C 3 6 6 5
; }( t0 x, A, N3 rconv2(a,e,'same'); F/ b. j3 N& r1 `1 L/ [
d =
( H& p& B3 ^/ f* h) `6 V0 H -3 -1 0 4% P2 o% X3 V$ q: z8 z
-4 -2 -1 7; o9 o- a, N! w4 ?; g/ y: |
-6 -1 0 5
, _8 U5 y0 `. \0 I; u* ?# l -4 -1 0 4
* t0 q' y* r8 Q& n/ d2 ^* U! cC = 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 0 k8 e1 q0 B% R: s7 V. N
, g3 H5 b8 ^7 _! _1 x* [
|