精华内容
下载资源
问答
  • 矩阵卷积

    2016-04-20 20:19:44
    以在图像处理中的应用为例:假设矩阵A、B,A代表源图像,B代表卷积模板(二维卷积) 函数给出的形式;   计算过程,将卷积模板旋转180度,然后将模板依次从上到下,从左往右滑动,计算在模板与原图像交集元素的...

    以在图像处理中的应用为例:假设矩阵A、B,A代表源图像,B代表卷积模板(二维卷积)

    函数给出的形式;

       

    计算过程,将卷积模板旋转180度,然后将模板依次从上到下,从左往右滑动,计算在模板与原图像交集元素的乘积和,作为卷积以后的数值。

    例:


    将模板翻转


    计算过程


    计算结果

    shape的取值有三种,full代表返回卷积以后的全部数据,size为(mA+mB-1,nA+nB-1)的数据;same代表返回卷积以后的原图size (mA,nA)的部分数据;valid返回size为(mA-mB+1,nA-nB+1)的数据,指的是模板元素全部参加运算的结果数据,即源图像和模板的交集为模板。

    注意:可以将矩阵卷积相乘转化为内积相乘的计算,同时也有连续函数的卷积计算

    展开全文
  • 矩阵卷积 图像处理 矩阵卷积 图像处理 矩阵卷积 图像处理
  • 矩阵卷积理解

    2018-11-20 19:18:55
    在图像处理的过程中,经常会看到矩阵卷积的概念,比如说用一个模板去和一张图片进行卷积,因此很有必要了解矩阵卷积到了做了什么,具体又是怎么计算的。  在matlab中有conv2函数对矩阵进行卷积运算,其中有一个...

    在图像处理的过程中,经常会看到矩阵卷积的概念,比如说用一个模板去和一张图片进行卷积,因此很有必要了解矩阵卷积到了做了什么,具体又是怎么计算的。 
    在matlab中有conv2函数对矩阵进行卷积运算,其中有一个shape参数,取值具体有三种:

     -full  - (default) returns the full 2-D convolution,
     -'same'  - returns the central part of the convolution
                that is the same size as A.
     -'valid' - returns only those parts of the convolution
                that are computed without the zero-padded edges.
                size(C) = max([ma-max(0,mb-1),na-max(0,nb-1)],0).
    1
    2
    3
    4
    5
    6
    用一幅图可以很好的理解这三个参数代码的具体含义: 


    矩阵卷积计算方法
     
     
    举一个简单的例子, 
     
    matlab 的计算结果如下: 

    --------------------- 
    作者:andrewseu 
    来源:CSDN 
    原文:https://blog.csdn.net/andrewseu/article/details/51783181 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • matlab矩阵卷积

    热门讨论 2011-07-17 19:15:30
    这是一个实现两个矩阵卷积计算的matlab源代码,经实验可用。
  • 矩阵卷积运算的具体过程,很简单

    万次阅读 多人点赞 2019-04-24 18:45:14
    假设有一个卷积核h,就一般为3*3的矩阵: 有一个待处理矩阵x: h*x的计算过程分为三步 第一步,将卷积核翻转180°,也就是成为了 第二步,将卷积核h的中心对准x的第一个元素,然后对应元素相乘后相加,...

    最近在看图像处理,卷积运算这一块也查了很多,但是感觉都写的太复杂,我这里简单的写一下卷积到底是一个什么计算过程。

    假设有一个卷积核h,就一般为3*3的矩阵:

    有一个待处理矩阵x:

    h*x的计算过程分为三步

    第一步,将卷积核翻转180°,也就是成为了

    第二步,将卷积核h的中心对准x的第一个元素,然后对应元素相乘后相加,没有元素的地方补0。

    这样结果Y中的第一个元素值Y11=1*0+2*0+1*0+0*0+0*1+0*2+-1*0+-2*5+-1*6=-16

    第三步每个元素都像这样计算出来就可以得到一个输出矩阵,就是卷积结果

    ……………………

    像这样计算,其他过程略了。

    最后结果

    注意:

    我这里是用0补全原矩阵的,但我们不一定选择0。在Opencv的cvFilter2D函数中,就没有使用0来补全矩阵,而是用了边缘拷贝的方式,下一篇我会介绍Opencv的CvFilter2D函数卷积运算过程。

     

    展开全文
  • ml-矩阵卷积 矩阵卷积。 安装 npm i ml-matrix-convolution const MatrixConvolution = require ( 'ml-matrix-convolution' ) ; let matrix = [ [ 1 , 1 , 1 , 1 , 1 ] , [ 1 , 1 , 1 , 1 , 1 ] , [ 1 , 1 , 1 ...
  • 二维卷积/矩阵卷积

    万次阅读 2017-07-22 05:09:02
    二维卷积/矩阵卷积的计算方程设有矩阵A和矩阵B,它们的卷积结果矩阵的元素可由下列公式计算得来: C(j,k)=∑p∑qA(p,q)B(j−p+1,k−q+1)C(j,k)=\sum_p \sum_q A(p,q) B(j-p+1,k-q+1) 其中的index只要在A,B中valid...

    二维卷积/矩阵卷积的计算方程

    设有矩阵A和矩阵B,它们的卷积结果矩阵的元素可由下列公式计算得来:

    C(j,k)=pqA(p,q)B(jp+1,kq+1)

    其中的index只要在A,B中valid都要参与运算。
    举例来说,令矩阵M为卷积核矩阵,矩阵I为图像矩阵,其元素如下:
    M=[1324],I=123234345

    要计算二者的卷积,首先令卷积核旋转180,那么M的变态过程如下
    首先行翻转:
    M1=[3241]

    然后列翻转:
    M2=[4132]

    (为什么称为180°翻转呢,这可以看作是原来的矩阵一行一行写成一个行向量,1 2 3 4,然后倒着写回去(180°翻转),变成 4 3 2 1,再写成矩阵的形式,跟上面的变化结果是一样的。)为了便于书写,将反转后的矩阵记为K
    如果将矩阵的重叠看作是二维平面上两个矩形的相交,那么相交有无重叠的情况也分为几种:
    1. 不相交,没有重叠的部分
    不交叉
    2. 上边相交,重叠区域在大矩形的上边。
    上边交叉
    1. 左边相交,重叠区域在大矩形的左边
      左交叉
      上两种情况的一个交集就是在大矩形的左上角有相交:
      左上交叉
    2. 完全重叠的相交,小矩形套在大矩形里面。
      全交叉
    3. 右边的相交,重叠区域在大矩形的右边。
      右交叉
    4. 下边缘的相交,重叠区域在大矩形的下边。
      下交叉
      右下的相交,重叠区域在大矩形的右下角。
      右下交叉
      类比卷积中,两个矩阵的元素的重叠也有这么几种。那么最终我们要使用这个相交产生的并集或者交集,或者是并集的一部分作为最后卷积结果的尺寸。
      在matlab的conv2函数里有个’shape’参数,是这样解释的:

      Subsection of the convolution, specified as one of these values:

      1. ’full’ — Return the full 2-D convolution.
      2. ‘same’ — Return the central part of the convolution, which is the same size as A.
      3. ‘valid’ — Return only parts of the convolution that are computed without zero-padded edges.

      现在我们默认conv2(I,M),即第一个array的size比第二个array的size要大一些。(如果相反,那么这三种情况又不太一样,此处不涉及)。分别来看一下

    Valid 型卷积

    这种类型只取用M(自己计算时是K,即180°反转后的矩阵)完全与I重叠的情况,就像是矩阵相交的第4种情况。完全不给任何矩阵补0,最终的卷积结果矩阵与M的尺寸一样(小矩阵的尺寸)。
    就我们的M和I的例子,设结果矩阵为V,一个个元素计算的话,其过程如下:
    V11=41+32+22+13=17
    如下图,
    第一个元素
    V12=42+33+23+14=27
    第二个计算
    V21=42+33+23+14=27
    第三个计算
    V22=43+34+24+15=37
    第四个计算
    最终Valid型结果为:

    V=[17272737]

    Same型卷积

    这种类型除了包含valid型的所有结果之外,还要包含小矩阵与大矩阵的右边缘、以及下边缘有重叠的情况。就像是矩阵相交的第4、第5和第6种情况。给矩阵I补0,已完成右边缘重叠和下方时的计算。最终的卷积结果矩阵与I的尺寸一样(大矩阵的尺寸)。
    就我们的M和I的例子,设结果矩阵为S。I矩阵补零后为

    I=1230234034500000

    (说明:其实给矩阵补零后相交情况就只有4那种了)
    一个个元素计算的话,其过程如下:S11,S12,S21,S22与前面计算的V一样。
    S13=43+30+24+10=20
    S23=44+30+25+10=26
    S31=43+34+20+10=24
    S32=44+35+20+10=31
    S33=45+30+20+10=20
    same
    最终Same型结果为:
    S=172724273731202620

    结合卷积的物理意义,就是加权叠加,再回头看一下计算.
    S11是矩阵K和I11周围的像素加权求和,这里的周围指的是右,右下,下还有其本身。
    卷积结果矩阵中的其他元也是这样解释。

    full 型卷积

    包含所有重叠的情况,在Same型基础上添加了小矩阵与大矩阵左边重叠的情况。即矩形相交的2,3,4,5种情况。这也是最复杂的一类。
    如果从valid转换为same还比较好理解的话,再转换为full原理也是一样的,不过这次I矩阵是在左边,上边,右边,下边都要补零,为什么要这么做呢?请看下图(博主为了偷懒,就把好几种情况放一起了):
    why
    是不是必须要前后左右全方位补零才可以呢?而且如果M的size更大一些的话,补的就不止是一行一列的0了。(补就是pad,pad就是补)
    最终补零后的I矩阵变成:

    I=0000001230023400345000000

    (再次强调:其实给矩阵补零后相交情况就只有4那种了)
    就我们的M和I的例子,设结果矩阵为F。
    F11=40+30+20+11=1
    F12=40+30+21+12=4
    ......
    依次类推
    full

    最终,Full型的卷积结果为:

    F=1599417272472737316202620

    结合卷积的物理意义,就是加权叠加,再回头看一下计算.
    F矩阵中的元素也是矩阵KI周围的像素加权求和,这里的“周围”则比较广义了,既有右边和下边,也有左边和上边。
    展开全文
  • 矩阵卷积运算过程讲解

    千次阅读 2019-05-16 17:12:24
    在爬虫处理验证码的过程中接触到矩阵卷积运算,关于该类运算,记录一下自己的心得。 理论知识 在讲述卷积过程前,我们来了解一下卷积公式。根据离散二维卷积公式: 其中A为被卷积矩阵,K为卷积核,B为卷积结果,该...
  • 与 CONV2 相同,但适用于稀疏矩阵
  • Matlab中矩阵卷积函数convn

    千次阅读 2017-07-12 10:16:43
    Matlab中矩阵卷积函数convn最近在看CNN做手写数字识别,其中CNN中Convolution在图像处理中就涉及了矩阵卷积。因为博主有了奥本海姆《信号与系统》中一维卷积的基础,这里就类比的推广一下矩阵卷积(二维,高维类似)...
  • 二维矩阵卷积,两个图像大小相同 二维矩阵卷积,两个图像大小相同
  • 矩阵卷积、矩阵相乘的转化

    千次阅读 2014-11-30 10:44:15
    之前图形学课上老师在 Image Filters中讲过用矩阵卷积对图像进行处理,当时一直不懂卷积是怎么个东东,今天网上找到下面的博客,恍然大悟。 转自:http://blog.csdn.net/anan1205/article/details/12313593 ...
  • 矩阵卷积(matlab函数)

    2012-04-29 12:49:24
    矩阵卷积原理与实现 function [ hp] = juanji( f,g ) %此函数只为计算两任意二维矩阵的卷积 %命令格式:C=juanji(A,B) C为A B的卷积; %若A为m*n矩阵,B为p*q矩阵,则C为(m+p-1)*(n+q-1)矩阵;
  • 矩阵卷积运算的具体过程 最近在看图像处理,卷积运算这一块也查了很多,但是感觉都写的太复杂,我这里简单的写一下卷积到底是一个什么计算过程。 假设有一个卷积核h,就一般为3*3的矩阵: 有一个待处理矩阵x: h*x的...
  • Openblas加速二维矩阵卷积操作

    千次阅读 2017-06-14 18:32:10
    Openblas可以加速矩阵卷积的操作,越复杂的卷积,越适合Openblas的加速,以下程序经博主测试准确无误。
  • 二维矩阵 卷积运算 C++实现

    热门讨论 2010-01-26 18:02:59
    C++实现的二维矩阵卷积运算 主要是一个卷积的算法,矩阵保存在一个二维矩阵中。接口可以根据需要自行修改。提供了2种卷积的算法,被注释掉的那部分执行效率比较低下,对于大矩阵容易造成程序死掉的情况。所以进行了...
  • 矩阵卷积运算

    2018-10-20 22:46:32
    假设有一个卷积核h,就一般为3*3的矩阵:   有一个待处理矩阵x: h*x的计算过程分为三步 第一步,将卷积核翻转180°,也就是成为了 第二步,将卷积核h的中心对准x的第一个元素,然后对应元素相乘后相加,...
  • 需求说明:深度学习FPGA实现知识储备 ... 第三部分:矩阵卷积转换为矩阵相乘 整理来自:时间的诗 第一部分:矩阵的卷积运算详细过程 来自:http://blog.csdn.net/frankyzhangc/article/details/69
  • Openblas加速三维矩阵卷积操作

    千次阅读 2017-06-15 21:09:38
    接上个博客(http://blog.csdn.net/samylee/article/details/73252715)所讲,这篇博文介绍如何用openblas加速三维矩阵。 注意:博主未执行累加运算,只是卷积...//cblas加速三维矩阵卷积操作 //注意:stride=1 //...
  • GPU并行计算OpenCL(2)——矩阵卷积 我们完成了helloworld之后,会感慨一个helloworld就要2-3百行代码。但由于OpenCL需要完成一系列启用GPU并行计算的过程,所以我们之后许多编码会和helloworld十分类似。比如这次,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,798
精华内容 1,519
关键字:

矩阵卷积