找回密码
 注册
关于网站域名变更的通知
查看: 669|回复: 1
打印 上一主题 下一主题

MATLAB中的卷积运算

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-13 08:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
MATLAB中的卷积运算
% }8 S, {# @; M
' ^& [, _" c! s, G

Imfilter:线性空间滤波

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

该用户从未签到

2#
发表于 2019-1-14 14:11 | 只看该作者
学习了 谢谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-4 17:09 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表