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

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算) C2 a  K" o) E& P1 r0 i- d5 Z  R6 N
1 X1 H( S8 M* O  X% [

Imfilter:线性空间滤波

conv2:二位卷积

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

例如:a =; \2 d1 h! q8 n

. Q/ w6 f, w. ?! u# \  P8 o+ o! j8 {
     1     2     3
- l& X" y4 ^+ o2 r     4     5     6
7 U7 ], R0 C8 c     7     8     9

b =3 A( U9 n* a% e  E0 q
, B4 ~$ a) m9 \2 r

0 l; V  x& [* x( v6 Z$ [     1     1     1
4 w/ L8 c; R. {( \: j! Q& {     1     1     12 Q( v$ x, u. M9 f* _) y# x
     1     1     1

conv2(a,b,'same’)=

    12    21    16
. ?( Q! g! W1 F5 h0 {    27    45    33* I( `) ]8 S, j' N
    24    39    28

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

conv2(a,b,'full’)=

     1     3     6     5     3. [  C( M! X# D0 F8 Y+ i
     5    12    21    16     9
5 C0 h; a4 p- [8 F4 t6 n4 i    12    27    45    33    18& u, r+ [0 v, S3 |* |; L1 j. G
    11    24    39    28    15
0 P% E/ [* C1 n( K) X4 t6 i% ?     7    15    24    17     9

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

卷积的计算步骤:0 K2 F7 G+ A& n, \5 k8 O+ L8 u
(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)
* g! I' O% u) a8 j2 E7 j(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方# s& w( ~& z  d
(3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘
7 P* Z, ~# m- O8 ~, k* S(4)    第三步各结果的和做为该输入像素对应的输出像素


  N: e' p/ e( }* d" R6 M1 B

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

a = , W! A/ Y; e0 z; e; k! R5 W% a( G
     2     1     3     1% i* M( @2 w# _7 \5 e! J
     1     2     1     2" Q2 r- d/ K, ?& t3 a- J
     2     1     3     2
; O9 A5 c% e! o3 v6 n; [. ]     1     3     1     2* U; C' p' M2 v
b =
- g/ Z, I1 C% N. n) |' m: d    -1    -1    -1- [5 w4 x9 U0 A
     0     0     0
* L7 C6 z% l  S& d. b     1     1     15 @+ q5 E7 Z8 t/ |" Q5 r
e =
8 n! z) y: O, r, ^; _    -1     0     1
+ b! z! ~. I  X. F    -1     0     1, Z6 X  d; x1 q) L
    -1     0     1
$ V8 N& Q3 o" sconv2(a,b,'same')
) ?" ?% M1 x* `" e  E4 A- ]% [: tc = ( \; \7 E4 r3 R
    -3    -4    -5    -3
! Q' \4 t' r- }$ B4 ^' j) ^) }* ?     0     0    -1    -17 {- ?% E' o7 S, Q; b. D3 Y
    -1    -1    -1     0
; c1 b7 V8 K, V1 u6 S1 r+ {% f     3     6     6     5
4 l% p0 Z! Z$ ]+ U" D9 p1 Hconv2(a,e,'same')# ^' o$ [6 Q7 _  q+ G
d = # d8 ^/ N* l, t  V  w
    -3    -1     0     4
( i* V* t  a- y9 g) r# j* B( Y    -4    -2    -1     7* Z8 C* u1 y6 e2 d
    -6    -1     0     5
/ z% O1 _7 l$ M9 i: t% y; B3 \    -4    -1     0     4


5 B/ S* G5 z; t% E9 x# Y% L) K
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
# V  O9 O7 y' L
, n8 ?4 d  O4 ?4 g

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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