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

假设有一个卷积核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来补全矩阵,而是用了边缘拷贝的方式

补充

另外在知乎上看到非常好也非常生动形象的解释,特意复制粘贴过来。(知乎马同学的解释)

从数学上讲,卷积就是一种运算。
某种运算,能被定义出来,至少有以下特征:
1.首先是抽象的、符号化的
2.其次,在生活、科研中,有着广泛的作用

比如加法:
1.a+b,是抽象的,本身只是一个数学符号
2.在现实中,有非常多的意义,比如增加、合成、旋转等等

卷积,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分、级数,所以看起来觉得很复杂。

这两个式子有一个共同的特征:

这个特征有什么意义?

只看数学符号,卷积是抽象的,不好理解的,但是,我们可以通过现实中的意义,来习惯卷积这种运算,正如我们小学的时候,学习加减乘除需要各种苹果、糖果来帮助我们习惯一样。

我们来看看现实中,这样的定义有什么意义。

2 离散卷积的例子:丢骰子

我有两枚骰子:

把这两枚骰子都抛出去:

求:两枚骰子点数加起来为4的概率是多少?
这里问题的关键是,两个骰子加起来要等于4,这正是卷积的应用场景。

我们把骰子各个点数出现的概率表示出来:

那么,两枚骰子点数加起来为4的情况有:

因此,两枚骰子点数加起来为4的概率为:
f(1)g(3)+f(2)g(2)+f(3)g(1)

符合卷积的定义,把它写成标准的形式就是:

(f∗g)(4)=∑m=13f(4−m)g(m)

3 连续卷积的例子:做馒头

楼下早点铺子生意太好了,供不应求,就买了一台机器,不断的生产馒头。
假设馒头的生产速度是 f(t) ,那么一天后生产出来的馒头总量为:
∫240f(t)dt

馒头生产出来之后,就会慢慢腐败,假设腐败函数为 g(t) ,比如,10个馒头,24小时会腐败:
10∗g(t)
想想就知道,第一个小时生产出来的馒头,一天后会经历24小时的腐败,第二个小时生产出来的馒头,一天后会经历23小时的腐败。
如此,我们可以知道,一天后,馒头总共腐败了:
∫240f(t)g(24−t)dt
这就是连续的卷积。

矩阵卷积运算的具体过程,很简单相关推荐

  1. matlab conv实现,MATLAB卷积运算(conv)以及通用的卷积函数my_conv的实现

    conv(向量卷积运算) 两个向量卷积,简单理解其实就是多项式乘法. 比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积计算方法如下: 把p的元素作为一个多项式的系数,多项式按升幂(或降 ...

  2. MATLAB卷积运算解释(conv、conv2、convn)

    二维离散卷积公式: =  第一部分 conv(向量卷积运算) 所谓两个向量卷积,说白了就是多项式乘法. 比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积如下: 把p的元素作为一个多项式 ...

  3. MATLAB卷积运算(conv、conv2、convn)解释

    1 conv(向量卷积运算) 所谓两个向量卷积,说白了就是多项式乘法. 比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积如下: 把p的元素作为一个多项式的系数,多项式按升幂(或降幂)排 ...

  4. 快捷进入开发状态,这里很简单~

    研发基本流程 当一个项目进展到开发环节时,您可以放心的使用本SVN协作平台,让您的研发团队最快进入程序实现的环节. 常规开发过程中创建SVN平台 常规开发团队组建起来时,需要有专业运维人员搭建SVN平 ...

  5. iphone投屏_iPhone投屏电视机/投影仪用这个方法很简单,媲美华为PC模式

    北京时间5月21日,华为荣耀在伦敦发布了新机荣耀20系列,作为荣耀上半年的旗舰级产品还是挺有亮点的,而且同样拥有PC模式,手机秒变电脑这种"高端"功能.其实从华为Mate 10系列 ...

  6. 2招解决并发问题,省几百万设备费用!说穿了很简单...

    经大佬介绍,接了个技术顾问的私活儿,3天搞定报酬8000,Mark一下,也分享下经验心得.(经大家要求,文末增加了一段接私活儿经验) 背景交代 甲方是广东某国企信息部,美其名曰是邀请技术顾问,其实就是 ...

  7. 别怕,卷积其实很简单

    相信很多时候,当我们在看到"卷积"时,总是处于一脸懵逼的状态,不但因为它的本义概念比较难理解,还因为它在不同的应用中发挥出的变幻莫测的作用也时常让人迷糊.但这些应用其实本质上都是同 ...

  8. 深度学习FPGA实现基础知识17(图像处理卷积运算 矩阵卷积)

    需求说明:深度学习FPGA实现知识储备 内容:第一部分:矩阵的卷积运算详细过程           第二部分:图像处理之卷积理解           第三部分:矩阵卷积转换为矩阵相乘 整理来自:时间的 ...

  9. 卷积矩阵及其运算实例

    矩阵的卷积运算主要用在图像处理中,假设输入信号为x[m,n],激活响应为h[m,n],则其卷积定义为: 不过在图像处理中这里的激活响应(也称为核)h[m,n]通常是一个3乘3矩阵,其下标如下图所示 其 ...

  10. 基于Verilog搭建一个卷积运算单元的简单实现

    目录 前言 1. 图片的缓存与读取 2. 滑窗的构建 3. 权值的读取 3.1 行列计数器的构建 3.2 权重数据的取存 4. 卷积运算 4.1 乘法运算 4.2 加法运算 4.3 卷积输出有效位 前 ...

最新文章

  1. java设置缓存机制
  2. Kotlin学习与实践 (十)Kotlin的可空性
  3. Android Scroller用法
  4. 温故而知新,8个有用的JS技巧「小知识点」
  5. ESP32串口API
  6. 新年+情人节礼物,WinDBG找出你内存溢出的地方
  7. java过滤集合数量,java – 使用lambdaj过滤集合
  8. SSM框架01--springmvc
  9. flash mx拖拽实例_Flash MX 2004中的像素溶解效果
  10. 腾讯云开发者实验室是什么?如何学习其中的153个实验案例?
  11. 使鼠标保持按住状态_程序猿、设计狮们的钟爱鼠标品牌,你知道是什么吗?
  12. flutter常见报错处理
  13. 正则表达式的进阶用法——预查与分组
  14. SpringMVC进阶
  15. java 抽奖_简单实现java抽奖系统
  16. HTML网页表格标签,HTML静态网页(标签、表格)
  17. 你今天Git了吗?上传资源上Github最新教程!
  18. 基于微信小程序公交查询系统设计与实现
  19. 系统辨识理论及MATLAB仿真——学习笔记(1)
  20. 国内图书分类号 国际图书分类号查询

热门文章

  1. 【Rust日报】2020-05-05:窥探Zoom, Lambda部署, slip等
  2. MaxDOS 网刻服务端网刻教程。
  3. c语言变量格式化,C语言新手入门之格式化输出和变量类型
  4. QComboBox综合案例
  5. ionic-vue 开发app移动端
  6. 博世如何通过创新加速成功孵化出人工智能养虾初创公司?
  7. 火狐浏览器装ie tab出现问题出现组件冲突,标题栏一直显示正在连接,附加组件打不开,解决
  8. WIFI 2.4G及5G信道一览表
  9. java开源cad_.Net开源项目(包含CAD支持)
  10. 副屏幕全屏_如何让电脑显示器屏幕显示全屏