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

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算" O- ]0 `4 I6 @
8 c7 v$ p  Z' ^0 m1 q* i; O9 e

Imfilter:线性空间滤波

conv2:二位卷积

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

例如:a =
+ L  @5 ~+ N2 G% r( c3 R) C
6 t: z: o1 ?6 r2 O- n) D0 g, F/ C9 d$ ]; K& L7 U% N3 J
     1     2     38 W  F1 Z$ j% `6 t4 D
     4     5     68 {& ], }  ^; d1 D" j0 k" f
     7     8     9

b =4 [1 {; i9 q4 g6 \

: L/ O2 B+ X* M% D5 z) o2 U/ L' F# Q
     1     1     1* `8 a8 H8 ^) w" e* g* F
     1     1     1
, f- o+ [4 p: ^( _; v4 e     1     1     1

conv2(a,b,'same’)=

    12    21    16! A; Z3 \7 ], y
    27    45    33
; u- z# x8 `3 i8 r    24    39    28

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

conv2(a,b,'full’)=

     1     3     6     5     3
  L: Y. @' Y! `& T" u2 a% I     5    12    21    16     9$ b+ F) M0 g( y1 O
    12    27    45    33    18
8 P! ]6 s0 |0 W+ ?  }    11    24    39    28    15
; y' K# u4 I" B2 J     7    15    24    17     9

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

卷积的计算步骤:
2 F! g0 Y. @. E' H3 u" r. Z9 ~(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)& G9 a5 s2 l( c4 l5 b
(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
: G) T' G, u- c" }: d! B$ N6 _(3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘% Q. q& r# m- Q/ g
(4)    第三步各结果的和做为该输入像素对应的输出像素


1 O  C0 ~/ I& h- x( E

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

a = 1 B7 J0 R/ w$ \6 A" z  C" J/ J, f
     2     1     3     11 N5 D; r6 U' a& p/ H
     1     2     1     2. j& Q8 A/ f9 T, M7 g( o& Q! n9 F/ U
     2     1     3     2( ~( o1 x6 n& [3 L; M
     1     3     1     2
- M. k: `$ j) z/ ^. Wb = . V4 A4 G+ b0 H" _, n9 w# C0 }
    -1    -1    -1
* g3 Q6 s* |0 d4 x& X     0     0     0
$ V4 o3 {- v8 b5 [, s% o2 L# s     1     1     1- c6 B$ [/ [9 _& Y: H1 W
e = # `+ r0 {& E2 A. d
    -1     0     1! _* N, w6 U8 N  z1 a
    -1     0     1- w% K) @$ O3 D" G( g+ E1 q3 r
    -1     0     1' }& A2 R, H& {: c; H. s1 M
conv2(a,b,'same')8 A" B# R4 C1 ~  h
c = 7 w7 Y) \- l  ~1 `6 e3 [" E& A
    -3    -4    -5    -3
0 ?: X# o* _1 L2 ?     0     0    -1    -16 x$ C6 w( I" ?9 g1 q; E7 q
    -1    -1    -1     0
* i: c; o/ X% h& ?/ a     3     6     6     5
6 v# c1 s4 Q* Cconv2(a,e,'same')
+ M4 W6 j/ G) Td = - F3 l! A; q4 d2 r7 _
    -3    -1     0     4
- B# o; w( |$ J9 O    -4    -2    -1     7) i9 {2 |4 X' g# s' D8 T  E9 [
    -6    -1     0     5- O% o& x" z; o
    -4    -1     0     4


4 K+ P+ y; n" j6 s
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
# b: J& c; g0 P2 R* \5 l3 M
" f; r: [& N: d; |

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 21:58 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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