java 怎么做卷积运算,入门教程之算法系列(二):卷积运算与模糊操作

卷积在信号处理领域有极其广泛的应用,也有严格的物理和数学定义。

OpenCV中对图像进行模糊操作,其背后的原理就是卷积运算,可是究竟卷积运算是什么,模糊的卷积算法又是如何实现的呢?本文将进行讨论。考虑到大部分读者的非专业性,本人将尽量不使用专业术语,而使用通俗易懂的“白话”进行讲述,若有任何疑问或建议,望读者斧正。注:需要读者有一定数学基础,能有一定矩阵基础或矩阵的概念,同时对统计学正态分布有概念,这对理解卷积算法很有帮助。

一、概述

(一)一维卷积运算

卷积运算需要两个对象,一个是被卷积的对象(操作数矩阵),一个是决定卷积效果的对象(卷积数矩阵),两着共同决定卷积运算的结果。

假设P为一个一维操作数矩阵,其值为[1,2,3,4,5,6,7,8,9];

假设R为一个一维卷积数矩阵,其值为[-1,0,1]。

对操作数矩阵中的每个数值,计算它左右两个数值和卷积数矩阵中对应位置的数值的乘积,然后把结果相加,最终得到的值就作为操作数矩阵中每个数值的新值。

如图1所示,每行灰色方格为操作数矩阵,橙色方格为卷积数矩阵,橙色方格依次向右移动:

1.如图1第1行所示,卷积数矩阵[-1,0,1]覆盖了操作数矩阵中的[1,2,3],那么操作数矩阵中的第2个数,原本为2,经过卷积运算后的新值为-1 * 1 + 0 * 2 + 1 * 3 = 2。

2.如图1第2行所示,卷积数矩阵[-1,0,1]覆盖了操作数矩阵中的[2,3,4],那么操作数矩阵中的第3个数,原本为3,经过卷积运算后的新值为-1 * 2 + 0 * 3 + 1 * 4 = 2。

3.如图1第3行所示,卷积数矩阵[-1,0,1]覆盖了操作数矩阵中的[3,4,5],那么操作数矩阵中的第4个数,原本为4,经过卷积运算后的新值为-1 * 3 + 0 * 4 + 1 * 5 = 2。

4.以此类推,第7次运算,卷积数矩阵[-1,0,1]覆盖了操作数矩阵中的[7,8,9],那么操作数矩阵中的第8个数,原本为8,经过卷积运算后的新值为-1 * 7 + 0 * 8 + 1 * 8 = 2。

AAffA0nNPuCLAAAAAElFTkSuQmCC

图1 一维卷积运算

综上,除去第1位数值1和第9位数值9没有运算,P经过R卷积后的矩阵为[1,2,2,2,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值