EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB中的卷积运算' ]6 b; V& D) n6 [) m I- X8 D
5 ?- }, `* f8 {' m/ W% @
Imfilter:线性空间滤波 conv2:二位卷积 conv2(a,b,same):将b作为模版在a上平移,最后的矩阵大小与a相同 例如:a =& u" w$ A9 \' _, n H
, }6 K' |* b* w+ f" }, c
; t- T6 Z1 @9 B' j0 _8 v 1 2 3$ D% H1 b2 I+ c8 G3 P) s( K
4 5 6
) h A. I# H7 o0 R 7 8 9 b =1 L6 d- d) @* X2 r: V
% F: V! ~5 T/ b9 h, G
8 |, |+ b! Y! E7 p, H 1 1 1
# A, o+ u: }7 z% e9 ^/ v3 O0 p( i) r 1 1 1
, A3 o, S7 c6 n M 1 1 1 conv2(a,b,'same’)= 12 21 16
" Z0 }; `- u8 {8 ^/ n" k0 Z 27 45 33
3 }4 l8 F+ K* `: O 24 39 28 这个是将b的模版中心位置置于a矩阵上,并且外圈补0. conv2(a,b,'full’)= 1 3 6 5 3! S: z w: ^9 |
5 12 21 16 9# L: y) C5 a0 V. T& g- p2 k
12 27 45 33 189 e1 _& d# k5 r9 k! b$ Y
11 24 39 28 15
: D, ]( t' a _) l! C) G 7 15 24 17 9 如果是full的话,总将b的最右下角元素至于a矩阵的第一个元素作为模版,然后开始平移模版,外圈补0 卷积的计算步骤:/ K2 E5 \: S1 `) Y9 n/ `, y
(1) 卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)
( |8 C* V' d, j(2) 移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
7 U. m+ n1 P1 q2 U8 _% [8 f$ L(3) 在旋转后的卷积核中,将输入图像的像素值作为权重相乘
' o8 H$ |" V q(4) 第三步各结果的和做为该输入像素对应的输出像素
Q+ s3 O S; l+ j请看用水平和垂直差分算子对矩阵处理后的结果,然后细细体会 a =
* z2 A3 u9 Z4 D4 {2 m' G( ^1 U: j 2 1 3 1 M. c6 S* \! E; p$ w) ~: l1 \
1 2 1 2& h% C% ?" O$ l7 T ~3 H
2 1 3 2
$ [% E8 s. ? V$ ]" l 1 3 1 2, ]; L1 K6 P. I3 x) L8 d
b = ( T- o7 G9 x6 @0 r
-1 -1 -16 O, ^# R7 b8 _6 J2 M& C; x
0 0 0( \! ]) H! y7 o. D, i
1 1 1/ O' q* W% ~+ q! i3 d& D2 x/ C$ p, z
e =
* c8 G+ {4 R/ w2 b6 ^- P -1 0 1$ ?3 l( ?- v* h' o ^- I7 R
-1 0 14 F+ V8 N( t- j. m! J2 x9 g5 i
-1 0 1
1 V8 o- `- k: {8 Mconv2(a,b,'same')5 ?" H, w+ W- \7 T5 `
c =
+ i# |/ T @9 |2 Q; m$ G- l0 l) l -3 -4 -5 -3
4 k/ y9 m. W8 t" [ 0 0 -1 -1
* [4 E5 T; a3 T4 n- e' E6 [5 ~* h -1 -1 -1 0
% w Q1 @) k6 G% f# `9 ` 3 6 6 52 \# M0 [3 k8 F
conv2(a,e,'same')9 ^& Q1 X, ^* [. H
d =
6 W* c3 x; F# K0 ?8 r+ V -3 -1 0 48 Q! s6 R. b0 k9 d# y+ a- a r3 R3 L
-4 -2 -1 7
3 U; o; g9 j. \; v: w& w -6 -1 0 5) Y, w6 s3 f; C& _. {* ] ~
-4 -1 0 4
$ n( S9 j0 ]8 UC = 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
/ L) F8 F& U7 E- `- ]( u* @$ D7 i
t( @: {* s b1 Q. U" i |