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

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算- v# T2 H3 l: ]8 M
  ~- G' l7 C" s+ U8 Y+ _

Imfilter:线性空间滤波

conv2:二位卷积

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

例如:a =
' ^, c$ @1 c: e. R1 |
+ ]9 `! i, t) {' x! e
7 T/ f/ D4 @, H9 E  p* k     1     2     3+ ?" L% |1 H- A. i
     4     5     68 K- J% @  a" F" j, V
     7     8     9

b =9 r% a3 j+ P+ H* B

& |+ T8 E: i' H0 Q7 a, H' @: D% [% c( G
     1     1     19 |! B3 f' C, Y7 \/ k. o. U; q2 t! H
     1     1     1
8 x8 l! e( O0 b, R+ S2 U  l     1     1     1

conv2(a,b,'same’)=

    12    21    16, W8 _. |1 M- J2 d" N
    27    45    33- V8 ~0 [! F5 Q8 u9 F* X6 }6 R6 ?0 D
    24    39    28

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

conv2(a,b,'full’)=

     1     3     6     5     3
1 v3 [: l% O9 j3 P  p     5    12    21    16     9
- r- c, I% x$ `: s# [    12    27    45    33    18
) ^5 E' k: R1 B1 X8 v    11    24    39    28    15
6 ?+ b  Z. l1 ]  w! }6 B     7    15    24    17     9

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

卷积的计算步骤:9 K6 v, [+ g; l2 f1 ]
(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)/ s( W- @* m- e) {
(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
8 ?. e" Z0 {' l(3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘, F: q4 m7 U/ D$ f+ d, G
(4)    第三步各结果的和做为该输入像素对应的输出像素


! @. T0 ^7 O& ^

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

a = 7 y7 s6 U. l& h( k
     2     1     3     1
: j# t' m1 j" i+ Q6 G1 w: e     1     2     1     2
: V0 ]: k( d# X4 m     2     1     3     2" |3 N7 }2 s- L: Q7 A
     1     3     1     2$ A( K& T3 w% ~
b =
3 ~9 ^( U( E$ u- I2 ^! w, @    -1    -1    -1
3 S, d6 D' B% t/ e9 }     0     0     0# g$ _/ |7 L/ M& o: x
     1     1     1
% P; G9 C5 G5 [6 g' p5 \e = $ Y: t9 {& N8 u" g( o8 i
    -1     0     1; d+ \# y6 u* T; U# T% Y! l
    -1     0     1! l- y, _0 @* r, A; X" t
    -1     0     1
$ G3 U5 Q; l( ?# M7 [conv2(a,b,'same')  s4 K& E/ |* N& [) H# Z4 e0 w
c =
' [& ]3 s& p0 W/ u    -3    -4    -5    -3: k( @9 M2 h. i# w7 Y
     0     0    -1    -1  c( U. F8 s3 c( T
    -1    -1    -1     0$ g  i4 R" `8 L* s
     3     6     6     5
! o% L5 e/ Q0 T& }7 ~: Rconv2(a,e,'same')- B' P! G. D( a2 _' c. _! s0 I) U
d =
5 F2 D# G' T6 b: H) |    -3    -1     0     4( K$ m/ {* y- |8 |4 @) F( b
    -4    -2    -1     7# N; L0 y' o2 S* L- f- y) d
    -6    -1     0     5) |5 _5 n) b- A% O1 G4 q7 R7 f
    -4    -1     0     4

9 S! m% V( _+ `  ~
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
" ]) V2 q1 q' D6 `' K" w
9 r4 C5 H. f7 w0 ?- G! l% c# ~

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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