在学习Opencv中的矩阵掩码时候遇到一个关于掩码矩阵表示的紧凑形式的问题,这里本人找了很多关于矩阵卷积的内容,大概说下比较通俗的理解:

1首先上一个叫做卷积核的矩阵

在Opencv官方文档的掩码矩阵中,我们可以看到会出现这样一个矩阵,先说说对掩码矩阵的公式的理解,对于图中一个像素点,视觉效果会收到相邻的像素点的影响,分别是上面的像素点,下面的像素点,左边的像素点和右边的像素点,我们把该像素点乘以5倍,然后分别减去这4个相邻的像素点的值,会发生以下情况,如果改像素点的值比较大,周围的像素点值比较小,那么相减之后的结果必然比该像素点的值大;反之,如果该像素点值比较小,周围像素点值比较大,那么相减之后的结果必然比该像素点值小,从而达到亮的点更加亮,暗的点更加暗,也就是锐化的效果。

那么这个卷积核矩阵就是为了实现这个功能,下面会对这个矩阵的原理做详细分析

2再看看我设定的图像输入矩阵,这里假设图像是单通道

3矩阵掩码操作

操作步骤大概就是先固定住卷积核矩阵不动,也就是上面灰色的矩阵,然后确定图像输入矩阵待求的像素点如(0,0),也就是上面图像输入矩阵的“1”;然后把这个待求点对准卷积核矩阵的中心点,也就是上图卷积核矩阵中的“5”,然后对这两个矩阵求卷积。下面先上图:

看到了吗,“1”和“5”已经对准,下面就是求卷积,求卷积的方法我大概说下我的理解,就是把图像矩阵重叠的部分与卷积核矩阵重叠部分相乘,然后不重叠的部分就是用0乘以对应卷积核矩阵的像素值,然后相加得出的结果,也就是为什么卷积核矩阵中心“5”周围的点要设置为“-1”的原因,就是为了用这些“-1”乘以图像像素点周围4个相邻像素点,不明白的话可以看我下面的计算,当然图中知识以图像矩阵中(0,0)也就是“1”为例,对于图像矩阵,我们必须把其余8个位置的像素值都算出来。

y(0,0) = 0*0 + 0*-1 + 0*0 +0*-1 +1*5 + 2*-1 + 0*0 + 4*-1 + 5*0

从上面的计算中可以看出,对于图像矩阵中“1”这个点,和他相邻的只有“2”和“4”两个,所以计算中体现出了2*-1和4*-1

剩下图像矩阵中的8个点也是按照这个原理做卷积运算,例如我要求图像矩阵中的“5”点,就把这个“5”点和卷积核矩阵中心的“5”对齐,然后做卷积运算。

关于图像处理中的矩阵卷积运算相关推荐

  1. OpenCV图像处理使用笔记(七)——卷积运算原理

    前言 1.在图像处理中,特别在深度学习图像处理,最常看到图像卷积操作,那什么是卷积呢,卷积就是两个原函数产生一个新的函数,两个函数之间的这种操作就称着卷积,在图像这里的图像卷积也用输入的图像矩阵与一个 ...

  2. 图像处理中的傅里叶变换

    傅立叶变换在图像处理中有非常重要的作用.因为不仅傅立叶分析涉及图像处理很多方面,傅立 叶改进算法,比如离散余弦变换,gabor与小波在图像处理中也有重要的分量.傅立叶变换在图像处理的重要作用: 1.图 ...

  3. matlab 卷积算子,matlab  矩阵卷积imfilter  conv2  filter 区别探究

    imfilter实现的是线性空间滤波: conv2是计算两个矩阵的二维卷积 1.MATLAB中提供了卷积运算的函数命令conv2,其语法格式为: C = conv2(A,B) C = conv2(A, ...

  4. MATLAB中几种卷积的实现与比较

    a=[1 2 3];b=[1 2]; >>c=conv(a,b) c= 1 4 7 6 就是相当于两个多项式相乘,展开以后再合并,之后的得到的系数就是conv得到的结果.c是系数. (1* ...

  5. 机器学习入门(15)— 全连接层与卷积层的区别、卷积神经网络结构、卷积运算、填充、卷积步幅、三维数据卷积、多维卷积核运算以及批处理

    卷积神经网络(Convolutional Neural Network,CNN)CNN 被用于图像识别.语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以 CNN 为基础. 1. 全连 ...

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

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

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

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

  8. 3D游戏开发中的矩阵详解

    矩阵很多同学没有接触过,所以感觉很难,很复杂,其实只要学过矩阵的同学都知道,矩阵运算并不难.今天我们给大家讲讲游戏开发中的矩阵的运算. 这里有个游戏开发交流小组 大家可以一起来学习交流哦 1:矩阵是什 ...

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

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

  10. 深入浅出理解卷积运算

    提起卷积运算相信大家都不陌生,这是一种很常见的运算.我们在学习<信号与系统>时就一直在和卷积打交道,在后来的一些课程中也有卷积运算的身影,比如<自动控制原理现代部分>中的卷积定 ...

最新文章

  1. Git 常见问题记录
  2. python入门(一)
  3. 用Visual C#来清空回收站(1)
  4. HDU-4604 Deque DP
  5. 2019-08-01 纪中NOIP模拟赛B组
  6. 演练 网站的导航栏 0920
  7. 计算机理论python字符串作业_[Python基础 ] Day_07_作业参考答案
  8. java用户角色权限管理 只显示姓_java权限管理与用户角色权限设计
  9. h5如何动态获取键盘高度_H5 键盘兼容性小结
  10. Leetcode 410.分割数组的最大值(最优解是二分法)
  11. ubuntu下安装win7虚拟机总结
  12. 使用js进行智慧树刷课
  13. 台式机安装Linux系统
  14. php 货币换算,PHP货币换算程序代码
  15. masm 16位汇编语法
  16. 金老师语录摘要(五)
  17. 大数据采集技术有哪些
  18. 谷歌浏览器小恐龙Java实现小游戏
  19. 基于BP 网络分类器的交通标志识别
  20. tds系统无法连接服务器,OpenLDAP - TDS - 无法联系LDAP服务器(-1)

热门文章

  1. appfuse mysql_学习 AppFuse
  2. python爬虫:获取12306网站火车站对应三字码
  3. 2022年成都初级审计师考试测试题及答案
  4. 难分伯仲,驱动人生驱动精灵巅峰评测?
  5. 基于Java开发的五子棋游戏APP设计与实现
  6. linux指纹识别,基于Linux的指纹识别系统的设计
  7. Citavi 6使用教程
  8. vb.net html元素,vb.net 教程 12-3 HtmlElement类 1
  9. 转载-【常用RGB颜色查询对照表及感情色】
  10. 第一章:网络信息安全概述精讲笔记