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

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算
4 l) A$ j! u7 E8 j9 T4 Q1 t. e! ^6 h9 U

Imfilter:线性空间滤波

conv2:二位卷积

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

例如:a =* O! y0 w4 S% R. K3 T: t+ v( m: V
: N' y- v3 }. c1 s$ H
: d4 N- M9 x; m* P1 z- f
     1     2     39 g4 ~3 L$ l0 t8 @0 x. I6 \
     4     5     61 x8 K7 l! L" s/ {
     7     8     9

b =& C' A+ K' ~! o) [
& O6 N4 c5 m! W4 ^

( B# O+ ?/ l* N7 ?+ z     1     1     1
0 a% B3 J' G+ n+ p     1     1     1
/ E+ R9 W* m7 |, Q% f  L+ w$ `9 y     1     1     1

conv2(a,b,'same’)=

    12    21    160 Y0 ^; F) e& r* k: O; `
    27    45    333 {3 O+ f( l5 I; i: Y$ l% g
    24    39    28

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

conv2(a,b,'full’)=

     1     3     6     5     3
1 p) l# B# H, r6 C' W     5    12    21    16     92 }& m5 o2 M1 \( P1 t+ [
    12    27    45    33    187 c8 B3 b& E8 H6 Y! B
    11    24    39    28    15
( {/ [. g& b! b" }- W) Z2 \     7    15    24    17     9

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

卷积的计算步骤:
# b3 p* u6 D" _' R(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)
2 W  [" g8 [/ @. l, Q* |9 ~! a0 y(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
. ~. ?. G+ h/ F' Y& [6 ](3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘
8 K! r1 G& d9 G(4)    第三步各结果的和做为该输入像素对应的输出像素

& |, J& q- m* g0 g  m5 k6 _

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

a = . y- ?# P+ t" y5 m
     2     1     3     1; |$ t$ ]* _8 x1 p& C
     1     2     1     2
, f  f0 i# T2 X2 {( V& D3 I; P     2     1     3     2* \( \+ K' s4 K4 R$ n
     1     3     1     2
; L: I1 @9 i" R1 Yb =
4 X) W7 a! l" W- V9 i0 Z    -1    -1    -1
5 i8 w7 ?* Q, K/ u; T     0     0     09 Q. }( z; E  D$ o# f4 T: |
     1     1     1
" e: r: J1 J% r8 A* pe = & }! s: t1 m" Q" b8 |' n/ F  S
    -1     0     1
( u) f- f) G2 R- t& \# f    -1     0     1% D5 p. m. l' R9 P- h" j
    -1     0     1% h8 j( ^7 q' ?3 j3 N
conv2(a,b,'same')' ?0 }! ^4 h3 Z2 o' v
c = 8 V  T. {# C* A
    -3    -4    -5    -3$ s5 F5 T2 e( C- y7 o3 a
     0     0    -1    -1
; }9 L; R, U: ~; {; z9 F    -1    -1    -1     0+ R/ v( _0 ]7 f# N* ?) V" f0 M; I- [
     3     6     6     5
* D8 ^: {  I; f, D( ?. a+ Cconv2(a,e,'same')4 }4 q" {7 ~) F# X2 b: ]/ }. H& c
d = 2 X* Q, ^) U/ g$ M1 s
    -3    -1     0     47 C/ d& g( ?% M' M& ]
    -4    -2    -1     7
/ E- T6 \4 ~8 |+ t    -6    -1     0     5
1 E- a' v  H4 ~# \    -4    -1     0     4

8 w% {2 f8 i, U" p9 c2 O2 ~
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
  V8 T& X& \) D; @7 \

( o. W5 A8 i# Q, o/ G' W

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-3 02:42 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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