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

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算+ H' [+ u( J# }( S0 m+ C
+ @: N" W; W# C3 n, L

Imfilter:线性空间滤波

conv2:二位卷积

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

例如:a =
$ Y  c. x. n# w- y3 f# {5 D) w
4 ]- a* C0 Y! Y, g# Y9 ^2 y6 t) u  G; r4 w4 j
     1     2     3
- K! p$ M$ |0 x$ S4 {) e  Z# M& }     4     5     6
% Y# D* V# Y" K, ~1 Q     7     8     9

b =
' r0 h+ v% U* y' n2 V& O$ R7 m' d9 \8 ]
+ j) T5 l2 ]. e
     1     1     1" E9 r% K6 ]% ^2 q. f. H6 t
     1     1     1
* @' _5 J, W* b# g     1     1     1

conv2(a,b,'same’)=

    12    21    16
1 ^/ r5 U$ _7 w3 G    27    45    335 b  s) z6 E3 B0 D4 @
    24    39    28

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

conv2(a,b,'full’)=

     1     3     6     5     3" J2 C) K1 y% A+ g
     5    12    21    16     93 Y& l& L2 z3 N5 N
    12    27    45    33    18
/ f4 n" O. y' N. D" M    11    24    39    28    15" a+ F* t% |5 h& L  K( v" I
     7    15    24    17     9

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

卷积的计算步骤:
4 v. T9 P/ y. ~5 l- n  h8 q" l(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)2 ^' k% Q5 ~5 Y
(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
- c( M5 ~9 V! d& \+ _& q3 W; u$ s(3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘
5 B8 D/ I; E: ~  ]* `; G% P(4)    第三步各结果的和做为该输入像素对应的输出像素


/ I7 [! j) ^+ u

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

a =
- A# P- h: ?9 ?4 S) {! b/ B     2     1     3     1
) l! w1 O: ^. S     1     2     1     2  ]6 R1 @) c9 A' M
     2     1     3     2
/ Q5 f' o( H3 r     1     3     1     26 H8 B+ ?4 g4 ?0 P
b = " o( A1 Y8 W3 J- r
    -1    -1    -1
1 c3 n% I4 c: V  P     0     0     0/ O* G4 l3 r( T& [  ^/ |* A
     1     1     1
( s% h8 U$ H- g8 `7 z$ A1 O" b" j$ me =
) j9 X5 {) T( o9 ?    -1     0     1
" @0 S; x" k9 i4 x6 c    -1     0     1
: h9 g8 t3 `% e! X. q    -1     0     1
; x" L6 }' h4 s& p* S& bconv2(a,b,'same')) t7 i8 U2 y/ l) y
c =
6 I8 s1 F7 r. B" J: v- g. _" y) C    -3    -4    -5    -3* r) z6 y5 A: m% Y5 B" ?
     0     0    -1    -1
$ A- L0 D" {' Y/ |9 m5 ]/ w9 v    -1    -1    -1     0. |  g) I( Y: t/ y: j' v+ n3 g
     3     6     6     5$ h6 T# h" u9 o; }* h4 K# x* a& S
conv2(a,e,'same')
( a0 n( U- V0 E# Cd = , U4 c1 j* H, X: {  s( D3 r
    -3    -1     0     4
+ g3 k! U+ w4 n/ o/ v    -4    -2    -1     7
( U+ f' F3 J! Z& b. B    -6    -1     0     5, `( W; W9 F' G; k
    -4    -1     0     4


% h: \& k2 H7 F* e
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
% |; s( v2 Y- s% a( f0 k
$ k( w7 j8 H- z+ w

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 07:27 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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