EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB中的卷积运算% E/ n8 l K( Q
4 f% p/ u5 N0 }' L" D. |4 l" EImfilter:线性空间滤波 conv2:二位卷积 conv2(a,b,same):将b作为模版在a上平移,最后的矩阵大小与a相同 例如:a =# v: I: K4 S" E; P1 c
+ n6 P, h3 P6 X4 D
. J* l- X+ c' [+ ^
1 2 3
' T2 H. d: w; g( D8 y' d 4 5 6
3 {0 ]. g; o* v! K0 z 7 8 9 b =
/ L+ n- y5 z' c) M, X( G, Q
' S4 [/ U- C* O& W! @9 g* E/ H$ x$ O4 f. I& i
1 1 1/ E7 x% z9 f6 m/ M, c# v
1 1 11 X2 g3 L1 s9 ~) g# B2 H, x. q, o
1 1 1 conv2(a,b,'same’)= 12 21 16
' E) j! f: x! j! v4 c3 | 27 45 33% e" D2 q$ u5 g! T# f3 Z1 j* G
24 39 28 这个是将b的模版中心位置置于a矩阵上,并且外圈补0. conv2(a,b,'full’)= 1 3 6 5 3; k1 d* q2 l: p! j% l" R( d2 d' l
5 12 21 16 9
) {' D. E& V( r, R' O$ X 12 27 45 33 18
. `" B" P5 f% A. u" O$ O 11 24 39 28 15
5 b4 V) E4 c* f- [$ r+ x 7 15 24 17 9 如果是full的话,总将b的最右下角元素至于a矩阵的第一个元素作为模版,然后开始平移模版,外圈补0 卷积的计算步骤:( |. ~; P- e8 t( g( Q* N" Q' k
(1) 卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)
4 a, r: @0 f/ I z ~) N; c(2) 移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
* p8 w7 t" l# m(3) 在旋转后的卷积核中,将输入图像的像素值作为权重相乘
4 R4 H, e1 Y9 Y; g4 O& v! z(4) 第三步各结果的和做为该输入像素对应的输出像素
5 R9 F I+ P- s$ G1 d; `; ?请看用水平和垂直差分算子对矩阵处理后的结果,然后细细体会 a = % m/ |' g9 P- D: m1 o' y' V& y. o
2 1 3 10 j6 x+ M2 c& e y
1 2 1 2! C# j% g r; O" A* O1 v% Z' q
2 1 3 2* u% O& D7 z _! [# |; L8 Z7 _
1 3 1 2* a$ E+ n' {3 a
b =
" h- l. h7 _+ [5 W, i$ N. o" h3 I -1 -1 -1
/ {- ?* ~& j. i, K 0 0 0
! `7 b, c9 L( {6 O, [- k. f) f I 1 1 1
6 z" p" ^) V1 e0 q* je = - g3 J( f' [! w* _: ^. E& h i% r
-1 0 1
% p9 D2 o0 K; J3 a9 P -1 0 1
% b: i9 v2 z+ I' e. Q -1 0 1
; v0 b6 O( L; V# uconv2(a,b,'same')
& D% _6 u, f7 V! A6 x, S+ I4 Pc =
: X" U' c6 m& R) T5 T -3 -4 -5 -31 h9 T/ a' q# d. ~
0 0 -1 -18 q: a( t" C7 G$ U6 `
-1 -1 -1 0
- M2 I' c1 P$ l7 Q 3 6 6 5
2 Q. _9 \9 J& v+ W, r1 T, `- f9 dconv2(a,e,'same'): j+ w5 n6 h: ~7 X7 x* T% |6 e% t, \
d =
9 k2 s3 T. O5 U% d -3 -1 0 43 h x& q: T3 S& y1 J. f
-4 -2 -1 7
& \+ S% D g- W0 j, [ -6 -1 0 5
6 G5 X' P0 X4 s% b0 B2 Y. K -4 -1 0 4
1 V: r2 L% H3 ]4 L: h vC = 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 ) x8 d$ P6 f+ \- n$ A* Q
, B# p! s1 L: K- a! A- T
|