找回密码
 注册
查看: 631|回复: 1
打印 上一主题 下一主题

MATLAB中的卷积运算

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB中的卷积运算' ]6 b; V& D) n6 [) m  I- X8 D
5 ?- }, `* f8 {' m/ W% @

Imfilter:线性空间滤波

conv2:二位卷积

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

例如:a =& u" w$ A9 \' _, n  H

, }6 K' |* b* w+ f" }, c
; t- T6 Z1 @9 B' j0 _8 v     1     2     3$ D% H1 b2 I+ c8 G3 P) s( K
     4     5     6
) h  A. I# H7 o0 R     7     8     9

b =1 L6 d- d) @* X2 r: V
% F: V! ~5 T/ b9 h, G

8 |, |+ b! Y! E7 p, H     1     1     1
# A, o+ u: }7 z% e9 ^/ v3 O0 p( i) r     1     1     1
, A3 o, S7 c6 n  M     1     1     1

conv2(a,b,'same’)=

    12    21    16
" Z0 }; `- u8 {8 ^/ n" k0 Z    27    45    33
3 }4 l8 F+ K* `: O    24    39    28

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

conv2(a,b,'full’)=

     1     3     6     5     3! S: z  w: ^9 |
     5    12    21    16     9# L: y) C5 a0 V. T& g- p2 k
    12    27    45    33    189 e1 _& d# k5 r9 k! b$ Y
    11    24    39    28    15
: D, ]( t' a  _) l! C) G     7    15    24    17     9

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

卷积的计算步骤:/ K2 E5 \: S1 `) Y9 n/ `, y
(1)    卷积核绕自己的核心元素顺时针旋转180度(这个千万不要忘了)
( |8 C* V' d, j(2)    移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
7 U. m+ n1 P1 q2 U8 _% [8 f$ L(3)    在旋转后的卷积核中,将输入图像的像素值作为权重相乘
' o8 H$ |" V  q(4)    第三步各结果的和做为该输入像素对应的输出像素


  Q+ s3 O  S; l+ j

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

a =
* z2 A3 u9 Z4 D4 {2 m' G( ^1 U: j     2     1     3     1  M. c6 S* \! E; p$ w) ~: l1 \
     1     2     1     2& h% C% ?" O$ l7 T  ~3 H
     2     1     3     2
$ [% E8 s. ?  V$ ]" l     1     3     1     2, ]; L1 K6 P. I3 x) L8 d
b = ( T- o7 G9 x6 @0 r
    -1    -1    -16 O, ^# R7 b8 _6 J2 M& C; x
     0     0     0( \! ]) H! y7 o. D, i
     1     1     1/ O' q* W% ~+ q! i3 d& D2 x/ C$ p, z
e =
* c8 G+ {4 R/ w2 b6 ^- P    -1     0     1$ ?3 l( ?- v* h' o  ^- I7 R
    -1     0     14 F+ V8 N( t- j. m! J2 x9 g5 i
    -1     0     1
1 V8 o- `- k: {8 Mconv2(a,b,'same')5 ?" H, w+ W- \7 T5 `
c =
+ i# |/ T  @9 |2 Q; m$ G- l0 l) l    -3    -4    -5    -3
4 k/ y9 m. W8 t" [     0     0    -1    -1
* [4 E5 T; a3 T4 n- e' E6 [5 ~* h    -1    -1    -1     0
% w  Q1 @) k6 G% f# `9 `     3     6     6     52 \# M0 [3 k8 F
conv2(a,e,'same')9 ^& Q1 X, ^* [. H
d =
6 W* c3 x; F# K0 ?8 r+ V    -3    -1     0     48 Q! s6 R. b0 k9 d# y+ a- a  r3 R3 L
    -4    -2    -1     7
3 U; o; g9 j. \; v: w& w    -6    -1     0     5) Y, w6 s3 f; C& _. {* ]  ~
    -4    -1     0     4


$ n( S9 j0 ]8 U
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

/ L) F8 F& U7 E- `- ]( u* @$ D7 i
  t( @: {* s  b1 Q. U" i

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-5-25 12:58 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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