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

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算
0 `$ u& N$ ]4 F* o5 l1 ^
! V1 M! L0 S6 n: {7 s+ U( ?5 ?- g

Imfilter:线性空间滤波

conv2:二位卷积

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

例如:a =  q: O. B1 b; v! d  e% j
9 E; h1 \# n( N* h# t+ I- W
- @7 g2 `4 K% [$ s8 a  o
     1     2     3
6 r( {% o3 R+ h* R& G! z5 q     4     5     6
: b! i* D2 m3 _# Z     7     8     9

b =( X) u* s- f/ q3 _! l/ m1 ~

9 w9 i* W) V7 ^3 o3 j3 n0 R
9 l. O0 O' L' Z. l7 h$ x" o! m6 `     1     1     1
  A6 B: _8 J. @; A7 Q# G6 W     1     1     1
+ Z) o+ M3 i9 E: r. V     1     1     1

conv2(a,b,'same’)=

    12    21    166 t" o  ]# E& [/ I% R1 {- \
    27    45    33. K$ x' W6 _# U# i
    24    39    28

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

conv2(a,b,'full’)=

     1     3     6     5     3* F" p( j$ |5 v( l, T
     5    12    21    16     9
) L8 h. Z9 {0 Z- `, a    12    27    45    33    18
7 ]1 s0 k: ?- ^  D" n4 g# [    11    24    39    28    15
8 q0 z+ Y1 e5 G7 I) D0 v     7    15    24    17     9

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

卷积的计算步骤:- }# t0 w+ x' v" d$ V2 _2 F' l
(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)' x$ m0 N8 i+ U& ^% t" ]; o! D  e
(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方3 \+ J" O0 r1 _4 N9 |
(3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘4 D# x; N7 Y: M9 D0 g4 G4 {: [
(4)    第三步各结果的和做为该输入像素对应的输出像素

8 [3 ]2 ^7 `2 x2 v

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

a = 1 N. d2 z* F7 E; [/ h8 M
     2     1     3     1) T* Q6 S* o* R5 m
     1     2     1     2
% O% g/ }/ L) |: n     2     1     3     2: v6 _% U! g, ?. L( O% a
     1     3     1     2, E) s" c- @  b+ U0 k6 g
b =
* M; {# d3 q1 f8 H8 l( I2 |    -1    -1    -1- s% N+ n0 |2 B/ q: K
     0     0     0
+ y( M. S0 K5 d! D" }     1     1     1
7 r. o/ ]/ h. J) i7 Pe = " b7 ]; U8 `- n
    -1     0     1
. d9 W) J" v4 h/ W+ T0 r- w    -1     0     1
. }8 u. E1 Y7 c% Q8 O4 j/ }+ T    -1     0     1+ D( A- Z+ g3 h5 _0 j" c
conv2(a,b,'same')( T0 L) p% Q; I; ^- z
c =
3 }: N9 N7 q8 e: q    -3    -4    -5    -3
8 m( s: _! F# [& z  J     0     0    -1    -1' w4 z  t" g- y8 g9 [
    -1    -1    -1     0
# c+ [1 R& ^4 q3 B* w" @: }$ r     3     6     6     5
% |1 @3 `8 z: m& H7 z4 v1 D1 vconv2(a,e,'same')
' E8 G6 v6 C4 D* i! a3 b$ d/ @$ n8 ^d = ; T) b- }/ F% F5 E) c6 o. M
    -3    -1     0     4
4 C" Y9 D2 l' ?- W" U    -4    -2    -1     7! r" C" Q4 a7 K( }8 r; u* L
    -6    -1     0     59 E3 F- U# `2 I7 K0 l2 w. V
    -4    -1     0     4

' y1 j2 q2 B' I! E0 l! h
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
" w  h1 q8 l  c
, e5 M+ W8 l+ ~; G7 G

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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