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

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算
4 }" Z0 B1 `6 W" O0 h& ^* a8 L
- N4 w9 C: r- `( K

Imfilter:线性空间滤波

conv2:二位卷积

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

例如:a =
# u' d9 q2 j/ @  p& T% e9 k4 f+ p6 w# J
9 Z& F5 Z8 d+ J% t* a
     1     2     3
, A2 B( y! A/ R5 |  T* P/ i     4     5     62 E% v1 k! p  W8 \! X; K2 h
     7     8     9

b =' D% z% M: p' o% K1 i6 N

4 m- p8 E6 H# u6 p: [2 e; R* n$ T) {) ~6 C0 y' C
     1     1     1. O8 v) ?6 J# ~% ~, z$ n
     1     1     1
# ~/ z8 c/ K  \3 _3 l     1     1     1

conv2(a,b,'same’)=

    12    21    16
$ f" P% S* b- T0 A% N; m    27    45    33
9 I/ D2 i+ x2 o    24    39    28

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

conv2(a,b,'full’)=

     1     3     6     5     3  i- @) ?% j5 z* g5 T
     5    12    21    16     9/ N2 n9 u' A. O2 s- X
    12    27    45    33    18
; `3 K$ C, @8 R. P& Q2 ^    11    24    39    28    15% c1 S6 [0 N1 U4 O
     7    15    24    17     9

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

卷积的计算步骤:; p, L8 j# \3 R2 q" [& A4 c
(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)  _3 [, M& s1 n
(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
6 e  A0 N& U- ^  ~9 T/ Z3 \6 L(3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘6 Q: ~. `& L" i8 v" S( ^6 Y
(4)    第三步各结果的和做为该输入像素对应的输出像素

$ a2 C/ f# n- i. i' n

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

a = . n5 p! @- T3 A; ?
     2     1     3     1
. t! Z# R( M' I! u) c     1     2     1     28 O! s( V8 h$ F4 l: U
     2     1     3     2
* p+ m% t( J0 m" C  q/ R     1     3     1     2% ^& k& T& K9 [0 }7 `' B
b =
4 [1 z( F  W! t4 Z# T" I    -1    -1    -1
" K7 Z0 ?9 W+ ]/ I- s% N     0     0     0  L3 S! ^5 M: X
     1     1     1) [8 g8 b2 ]8 V
e =
" F( V# Q! \2 e    -1     0     1
9 t. {; H6 e  g  B" q    -1     0     1- [. }* ?! V) E2 s$ b
    -1     0     1& |7 G8 h/ H: s  Z4 c/ Z' Q
conv2(a,b,'same')
3 W3 b; c. ^  w/ Z; s1 A2 rc = # k3 _- t1 {& _6 `
    -3    -4    -5    -3
( [' n" H0 Z  ~" S' Y     0     0    -1    -11 H# O8 i% z2 U/ M
    -1    -1    -1     0/ _3 |9 u1 @+ x, j. j
     3     6     6     5. d% k6 h- H7 H9 V
conv2(a,e,'same')
: E0 s: \/ C. E4 [5 Od = 2 Z  i. ?$ x' z9 L4 e
    -3    -1     0     4
4 u9 ?; u" E5 s8 r" a) b    -4    -2    -1     7
8 q7 b' I  y! T/ ~. o& f; v    -6    -1     0     5
% r* V/ q& T# z! e6 S    -4    -1     0     4

3 H" ?- Z% T: e* m6 Q2 Z) b: r
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

+ y; D+ [% ]9 l4 n, ?- ]
: R* W1 h! n* ?: y9 @

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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