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

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算
$ e) j, W8 r: g: o4 k! ]4 [2 N
" x' Z5 G  ?. A$ d; f1 v0 W

Imfilter:线性空间滤波

conv2:二位卷积

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

例如:a =
% m# \' c3 F7 w1 I+ o% X. P7 M- ]1 A, m2 _9 i% b( k
4 t3 _, y, X3 Q* i7 {/ A* H  f
     1     2     3
4 X' g* D! d: }& a# O3 u  ]3 y     4     5     6
; n8 b+ q% z1 a3 D# P' u& V4 |     7     8     9

b =
4 v5 }/ l9 P: B' t* e, M7 Q! ]; {/ d2 i5 x

/ Y$ X% ]+ r: @) I     1     1     10 k: ^3 v* V/ |1 ]
     1     1     1- D9 ?9 A& E9 n1 W$ E& o6 A
     1     1     1

conv2(a,b,'same’)=

    12    21    16
7 n( |7 o3 o% P    27    45    33
8 y# D! B1 [/ A) s9 [$ s' I    24    39    28

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

conv2(a,b,'full’)=

     1     3     6     5     3
0 D1 m, @' \( f; _7 a6 r/ }! u% r: D     5    12    21    16     9( H, Q; q* D: V1 X
    12    27    45    33    18
4 g9 m( k( {7 ~    11    24    39    28    157 ^+ L/ \! m: L$ m3 n
     7    15    24    17     9

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

卷积的计算步骤:
% B$ k$ i, \3 S7 @# w3 ]3 v6 c(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)9 P; _# X( J" J) Y
(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
/ U& Q3 C# J2 m: m( S0 M, Y0 D(3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘
2 Z& G, \. i  D(4)    第三步各结果的和做为该输入像素对应的输出像素

. g( p+ T, d( g- w! c

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

a =
8 E3 X) d$ N# ?2 k     2     1     3     1
1 Y' g0 `$ k. j; V" K8 J- h     1     2     1     2
/ @. F0 y2 O5 ?: `     2     1     3     2; ]: S7 ^, O  l1 p
     1     3     1     2
9 D/ t  Z: e2 @* D$ V, Z- _b =
! m' ?; A! A, R" |' B    -1    -1    -1
2 U! t/ N3 E# j3 M+ l8 x8 p     0     0     01 ?+ b; h0 \( w; t* X
     1     1     1
; R+ K7 {. r" A% I' @e = ( Z3 M, E* I9 Z3 Z& j% i6 ]5 I
    -1     0     1
' W2 Z0 |5 p% `" V    -1     0     1
/ z0 \( \& e1 \3 {( Y3 S    -1     0     14 i5 C9 f- S( t0 s
conv2(a,b,'same')5 z) f/ v+ }3 b# e) p: d
c =
$ y2 Q* x9 m. O+ A    -3    -4    -5    -3+ v, F$ e( ^: T4 z6 h
     0     0    -1    -11 _& n4 M( s  j3 ?. ^
    -1    -1    -1     0
: Y0 Z9 r& b# g- b  n     3     6     6     5
7 p' V/ m; o$ {6 A0 Fconv2(a,e,'same')  P( T2 e; e8 c4 e. O% ^
d =
% K' {3 i9 y) |( a8 j5 U5 l    -3    -1     0     4
7 e  r0 O. l, y$ r" Z: I+ `( }/ v    -4    -2    -1     7
1 v: |( D( J! [$ o    -6    -1     0     5$ q0 L* F  h" n4 w3 _* A
    -4    -1     0     4


- ]3 X9 ^; k0 ^) \3 C
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
8 g, z) u  E$ Y

. K+ o6 t0 u* ^

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 17:13 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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