EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB中的卷积运算2 t# r! u9 E2 |2 r* G
4 R7 }9 Y# \( l. ~' u# w( @; Y. c
Imfilter:线性空间滤波 conv2:二位卷积 conv2(a,b,same):将b作为模版在a上平移,最后的矩阵大小与a相同 例如:a =
# a, o. H* ^/ ^: I1 f7 Z
5 y& u2 |5 E* U
* W( b; J/ U+ n8 _" Z 1 2 3& a% o' n* d% _5 _( `1 U
4 5 60 B! O1 I) p# L) {! e- n; P
7 8 9 b =$ e& p l, q/ V
! A/ v7 D8 L2 s* @6 }5 n, ^
/ D1 n0 |/ M6 \& {, m& a
1 1 1 I" R8 ?/ t; s- E# L1 ~
1 1 1
5 D3 p4 R3 q+ R( C1 D: f 1 1 1 conv2(a,b,'same’)= 12 21 16
9 g3 I# l3 m. m# n- B 27 45 33( _* r. _2 d, ]% E
24 39 28 这个是将b的模版中心位置置于a矩阵上,并且外圈补0. conv2(a,b,'full’)= 1 3 6 5 38 `$ Q) ]; M) i5 W. Z ?
5 12 21 16 9
3 s( {2 P8 K( l0 M* \ 12 27 45 33 18% X! {9 ~6 k9 H4 a. V/ K
11 24 39 28 15
+ a0 @( v, g' h2 n 7 15 24 17 9 如果是full的话,总将b的最右下角元素至于a矩阵的第一个元素作为模版,然后开始平移模版,外圈补0 卷积的计算步骤:
: `+ K+ y/ J/ l7 Z4 c7 Q x(1) 卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)( Q, o0 p$ k, `6 x+ i$ g
(2) 移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
! l, k! I1 T* B* Z(3) 在旋转后的卷积核中,将输入图像的像素值作为权重相乘
, E' d6 q6 r: R& ]( y9 f(4) 第三步各结果的和做为该输入像素对应的输出像素 % J) B3 y, H V" }2 c
请看用水平和垂直差分算子对矩阵处理后的结果,然后细细体会 a =
' C, X: i1 ?7 C. q 2 1 3 1
2 p' B1 r* H6 I8 ]( s/ Z9 E) | 1 2 1 2$ Y8 @" B; h7 p+ U7 c# o5 x
2 1 3 2
5 l8 F8 Z2 ^8 [" z 1 3 1 2
& b S! C6 o' q. U: ?' fb = ( I+ a1 l" [ |
-1 -1 -1- Z% r d& j6 k! o0 }
0 0 0
- b* g! O) \: e# i* |8 f% {# Q# P! a 1 1 15 m. D3 b& Y# E0 b' n2 |5 @9 @
e = 6 b) H h! ^4 Y5 ^
-1 0 1
2 Z- f# d- }7 Q+ X* Y! ^ -1 0 1+ s3 Y0 u" \1 k: g
-1 0 1# [( H6 h+ H4 t, v7 G9 F
conv2(a,b,'same')
+ `1 @& l3 `& {5 T$ J% Nc = * @/ ^' d2 S( r& o( y, H
-3 -4 -5 -3
, U7 O1 U% Q ^; `: z4 M1 N1 v, o 0 0 -1 -1* Y: d+ {. v3 ~
-1 -1 -1 0
$ Y- i5 ]& b( S" q 3 6 6 5" n: `. v, f( c; V, C- Y
conv2(a,e,'same')
/ a7 V) ~# y' Y5 o" H( @! O8 L* md =
1 v) z _9 u8 H4 N8 q# c# X -3 -1 0 4
, P! H* R1 k2 @+ w ^. ?$ Y5 b -4 -2 -1 7" L' T6 [4 A! B/ `5 o2 T0 a8 s
-6 -1 0 59 c* L2 j7 v* _1 T
-4 -1 0 4
4 s; S0 Y4 {5 V: R; P6 _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
: @4 Y$ e ^# |; C8 [2 L
) y `2 f6 S0 y1 `4 f+ k& z$ B) _ |