zoukankan      html  css  js  c++  java
  • MATLAB卷积运算(conv、conv2)解释

    来源:https://www.cnblogs.com/hyb221512/p/9276621.html

    1.conv(向量卷积运算)

    所谓两个向量卷积,说白了就是多项式乘法。
    比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积如下:
    把p的元素作为一个多项式的系数,多项式按升幂(或降幂)排列,比如就按升幂吧,写出对应的多项式:1+2x+3x^2;同样的,把q的元素也作为多项式的系数按升幂排列,写出对应的多项式:1+x。

    卷积就是“两个多项式相乘取系数”。
    (1+2x+3x^2)×(1+x)=1+3x+5x^2+3x^3
    所以p和q卷积的结果就是[1 3 5 3]。

    记住,当确定是用升幂或是降幂排列后,下面也都要按这个方式排列,否则结果是不对的。
    你也可以用matlab试试
    p=[1 2 3]
    q=[1 1]
    conv(p,q)
    看看和计算的结果是否相同。

    >> p=[1 2 3];
    q=[1 1];
    conv(p,q)

    ans =

    1 3 5 3

    2.conv2(二维矩阵卷积运算)

    语法:
    conv2(原图像,卷积核)

    a=[1 1 1;1 1 1;1 1 1];
    b=[1 1 1;1 1 1;1 1 1];
    >> conv2(a,b)

    ans =

         1     2     3     2     1
         2     4     6     4     2
         3     6     9     6     3
         2     4     6     4     2
         1     2     3     2     1

    >> conv2(a,b,'valid')

    ans =

         9

    'valid'就意味着不对原图像padding.

    >> conv2(a,b,'same')

    ans =

         4     6     4
         6     9     6
         4     6     4

    same的解释:

    卷积的时候需要对卷积核进行180的旋转,同时卷积核中心与需计算的图像像素对齐,输出结构为中心对齐像素的一个新的像素值

    >> conv2(a,b,'full')

    ans =

         1     2     3     2     1
         2     4     6     4     2
         3     6     9     6     3
         2     4     6     4     2
         1     2     3     2     1

     图中蓝色为原图像,白色为对应卷积所增加的padding,通常全部为0,绿色是卷积后图片。图的卷积的滑动是从卷积核右下角与图片左上角重叠开始进行卷积,滑动步长为1,卷积核的中心元素对应卷积后图像的像素点。

  • 相关阅读:
    spring 09-Spring框架基于QuartZ实现调度任务
    spring 08-Spring框架Resource资源注入
    spring 07-Spring框架Resource读取不同资源
    spring 06-Spring框架基于Annotation的依赖注入配置
    html 默认跳转
    poi 设置样式
    支付宝扫码支付回调验证签名
    构造器初始化
    cxf webservice
    CSS3 border-image 属性
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/10879506.html
Copyright © 2011-2022 走看看