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

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算
, I% l# w6 I6 N; P2 ^/ x) v0 J9 e! C" x

Imfilter:线性空间滤波

conv2:二位卷积

conv2(a,b,same):将b作为模版在a上平移,最后的矩阵大小与a相同

例如:a =) L5 y% D2 s$ A8 E
& m! r+ r: _( w* x5 v2 M! N5 l1 a" O

2 G8 ^, x. d" j6 ^     1     2     3! B0 X9 H9 N$ x. r1 e3 @
     4     5     6+ P. A9 k( D5 D/ \& `! h
     7     8     9

b =/ b7 r5 Q) F. X" D. }

2 J+ ^' i1 H. j. G) ^! v5 L; o! s8 O0 k
     1     1     1! r# V6 K& S  S
     1     1     1
: w' }5 i* e0 l6 _     1     1     1

conv2(a,b,'same’)=

    12    21    16
- p3 x% P3 z: V* z1 `0 J    27    45    337 X- D1 E6 O  B
    24    39    28

这个是将b的模版中心位置置于a矩阵上,并且外圈补0.

conv2(a,b,'full’)=

     1     3     6     5     36 N- z( _, h; |- H0 x
     5    12    21    16     97 z5 @% w9 S* k- O
    12    27    45    33    18
) p$ ]: u3 M, v    11    24    39    28    15& j1 Q& }! C, p2 V1 s" w
     7    15    24    17     9

如果是full的话,总将b的最右下角元素至于a矩阵的第一个元素作为模版,然后开始平移模版,外圈补0

卷积的计算步骤:4 g* |( t: T6 e1 u2 b" ~6 \
(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)7 }' d& Q6 @# K: ?* O
(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方; ?+ ~$ P0 ~1 N+ H! k0 \
(3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘
5 w4 W# \8 S2 ^5 y3 Q9 b& g0 }( y2 \(4)    第三步各结果的和做为该输入像素对应的输出像素

. [" J8 O: B0 Y* z: m

请看用水平和垂直差分算子对矩阵处理后的结果,然后细细体会

a =
5 Y9 ?: x+ L0 v/ l     2     1     3     17 c+ Y6 n  u6 Z1 K9 E
     1     2     1     2% K$ b2 s7 v7 k( `# v
     2     1     3     2
: @$ S- b0 W+ ~( ^9 H0 X     1     3     1     2' {8 V4 G7 @, c! [% N+ Q' X8 ^7 t3 E$ n
b = ; l% O. L; s! f9 S( _
    -1    -1    -1
# @) c: E+ Z6 ]$ n% @3 ]& J0 K6 Y. i     0     0     0' {* G: u# ]5 n
     1     1     1
2 U" K! }( p6 ne =
* l1 K/ d) C' A2 W! _" s    -1     0     1
! Z, h& N4 E! q9 g! p    -1     0     1
; @6 f& C# U* @. U  W& e& K    -1     0     1! ^' A$ p8 y" {1 C3 C
conv2(a,b,'same')
3 ]( e- u+ {6 T( B* R, mc = : V5 C: z. ]6 C9 u
    -3    -4    -5    -35 i, x  ~; G! D7 W9 u7 q' j
     0     0    -1    -1
+ S1 f- ?, m+ Z7 g    -1    -1    -1     0
- D9 [$ x. r0 U1 `- u( q     3     6     6     5
! u1 \1 U/ S2 F3 z6 {conv2(a,e,'same')' F$ q0 ~7 s8 x  h- H
d = . x& ?, q$ d  P
    -3    -1     0     48 G8 [+ T! b- J
    -4    -2    -1     7
# ~9 c/ R5 d/ w: b# N" B' d' R    -6    -1     0     5( J) a; r  M& w( T  u
    -4    -1     0     4

3 O& n6 ]2 P) n
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
  R; N) z" P0 J6 ~' X! z( {

9 S# k! O: Z% ?+ }' U' ~# G0 ]

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 14:49 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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