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

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算2 t# r! u9 E2 |2 r* G
4 R7 }9 Y# \( l. ~' u# w( @; Y. c

Imfilter:线性空间滤波

conv2:二位卷积

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

例如:a =
# a, o. H* ^/ ^: I1 f7 Z
5 y& u2 |5 E* U
* W( b; J/ U+ n8 _" Z     1     2     3& a% o' n* d% _5 _( `1 U
     4     5     60 B! O1 I) p# L) {! e- n; P
     7     8     9

b =$ e& p  l, q/ V
! A/ v7 D8 L2 s* @6 }5 n, ^
/ D1 n0 |/ M6 \& {, m& a
     1     1     1  I" R8 ?/ t; s- E# L1 ~
     1     1     1
5 D3 p4 R3 q+ R( C1 D: f     1     1     1

conv2(a,b,'same’)=

    12    21    16
9 g3 I# l3 m. m# n- B    27    45    33( _* r. _2 d, ]% E
    24    39    28

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

conv2(a,b,'full’)=

     1     3     6     5     38 `$ Q) ]; M) i5 W. Z  ?
     5    12    21    16     9
3 s( {2 P8 K( l0 M* \    12    27    45    33    18% X! {9 ~6 k9 H4 a. V/ K
    11    24    39    28    15
+ a0 @( v, g' h2 n     7    15    24    17     9

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

卷积的计算步骤:
: `+ K+ y/ J/ l7 Z4 c7 Q  x(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)( Q, o0 p$ k, `6 x+ i$ g
(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
! l, k! I1 T* B* Z(3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘
, E' d6 q6 r: R& ]( y9 f(4)    第三步各结果的和做为该输入像素对应的输出像素

% J) B3 y, H  V" }2 c

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

a =
' C, X: i1 ?7 C. q     2     1     3     1
2 p' B1 r* H6 I8 ]( s/ Z9 E) |     1     2     1     2$ Y8 @" B; h7 p+ U7 c# o5 x
     2     1     3     2
5 l8 F8 Z2 ^8 [" z     1     3     1     2
& b  S! C6 o' q. U: ?' fb = ( I+ a1 l" [  |
    -1    -1    -1- Z% r  d& j6 k! o0 }
     0     0     0
- b* g! O) \: e# i* |8 f% {# Q# P! a     1     1     15 m. D3 b& Y# E0 b' n2 |5 @9 @
e = 6 b) H  h! ^4 Y5 ^
    -1     0     1
2 Z- f# d- }7 Q+ X* Y! ^    -1     0     1+ s3 Y0 u" \1 k: g
    -1     0     1# [( H6 h+ H4 t, v7 G9 F
conv2(a,b,'same')
+ `1 @& l3 `& {5 T$ J% Nc = * @/ ^' d2 S( r& o( y, H
    -3    -4    -5    -3
, U7 O1 U% Q  ^; `: z4 M1 N1 v, o     0     0    -1    -1* Y: d+ {. v3 ~
    -1    -1    -1     0
$ Y- i5 ]& b( S" q     3     6     6     5" n: `. v, f( c; V, C- Y
conv2(a,e,'same')
/ a7 V) ~# y' Y5 o" H( @! O8 L* md =
1 v) z  _9 u8 H4 N8 q# c# X    -3    -1     0     4
, P! H* R1 k2 @+ w  ^. ?$ Y5 b    -4    -2    -1     7" L' T6 [4 A! B/ `5 o2 T0 a8 s
    -6    -1     0     59 c* L2 j7 v* _1 T
    -4    -1     0     4


4 s; S0 Y4 {5 V: R; P6 _
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

: @4 Y$ e  ^# |; C8 [2 L
) y  `2 f6 S0 y1 `4 f+ k& z$ B) _

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-20 07:38 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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