图像处理中滤波和卷积是常用到的操作。很多人认为卷积就是滤波,两者并无区别,其实不然。两者在原理上相似,但是在实现的细节上存在一些区别。这篇博文主要叙述这两者之间的区别。

1、滤波

简单来说,滤波操作就是图像对应像素与掩膜(mask)的乘积之和。

比如有一张图片和一个掩膜,如下图:

那么像素(i,j)的滤波后结果可以根据以下公式计算:

其中G(i,j)是图片中(i,j)位置像素经过滤波后的像素值。

当掩膜中心m5位置移动到图像(i,j)像素位置时,图像(i,j)位置像素称为锚点。

滤波步骤:

  1. 对原始图像的边缘进行某种方式的填充(一般为0填充)。
  2. 将掩膜划过整幅图像,计算图像中每个像素点的滤波结果。
依照这个步骤,假设我们有一个二维矩阵I,掩膜M,则滤波的结果如下:

滤波后的图像大小不变。



2、卷积

卷积的原理与滤波类似。但是卷积却有着细小的差别。
卷积操作也是卷积核与图像对应位置的乘积和。但是卷积操作在做乘积之前,需要先将卷积核翻转180度,之后再做乘积。
卷积步骤:
  1. 180度翻转卷积核。
  2. 不做边界填充,直接对图像进行相应位置乘积和。
从以上步骤可以看出,如果卷积核不是中心对称的,那么卷积和滤波操作将会得到完全不一样的结果。另外,卷积操作会改变图像大小!

由于卷积操作会导致图像变小(损失图像边缘),所以为了保证卷积后图像大小与原图一致,经常的一种做法是人为的在卷积操作之前对图像边缘进行填充。
最后,关于卷积后图像尺寸的计算:假设原始图像为M*M,卷积核大小为N*N,边缘填充像素个数为pad,步长为stride。则卷积后图像的尺寸变为:m =(M-N+2*pad)/sride+1。

图像处理中滤波(filtering)与卷积(convolution)的区别相关推荐

  1. 图像处理中对双三次插值(立方卷积插值)的理解

    很多人对图像处理中双三次差值的矩阵不能理解,现在整合归纳出适合自己理解的资料: 假设源图像A大小为m*n,缩放后的目标图像B的大小为M*N.那么根据比例我们可以得到B(X,Y)在A上的的 对应坐标为A ...

  2. 如何理解卷积:信号处理、图像处理中的应用

    信号与系统中的卷积解释 作者:张俊博 链接: https://www.zhihu.com/question/22298352/answer/34267457 来源:知乎 著作权归作者所有,转载请联系作 ...

  3. (转载)计算机视觉、图像处理中常见的滤波操作

    前言:计算机视觉是让计算机理解图像与视频,本系列博客的目的在于加深自己在学习计算机视觉过程中对相关知识理解与回顾.其中很多内容参照:教材<ComputerVision: Algorithms a ...

  4. 图像处理中的卷积与模板

    图像处理中的卷积与模板 1.使用模板处理图像相关概念:       模板:矩阵方块,其数学含义是一种卷积运算. 卷积运算:可看作是加权求和的过程,使用到的图像区域中的每个像素分别与卷积核(权矩阵)的每 ...

  5. 数字图像处理:理解什么是卷积(滤波)、卷积核以及相关参考资料

    ☞ ░ 前往老猿Python博文目录 ░ 一.概述 在图像处理领域,滤波.卷积都是相同的含义,都是一种图像的卷积操作,与此相对应通过卷积处理图像时,需要使用一个用于计算图像像素的参考矩阵,这个矩阵称为 ...

  6. 图像处理中的高通滤波与低通滤波

    图像处理中的高通滤波与低通滤波 High pass filter A high pass filter (HPF) is a filter that examines a region of an i ...

  7. 3 3中值滤波 matlab,MATLAB中值滤波在灰度图像处理中的应用研究和仿真(3)

    MATLAB中值滤波在灰度图像处理中的应用研究和仿真(3) 时间:2016-11-30 21:28来源:毕业论文 3.2 中值滤波的仿真 3.2.1 中值滤波仿真函数介绍 MATLAB能够支持多种图像 ...

  8. 卷积神经网络及图像处理中共享权重、特征映射等理解

    一,前言 卷积神经网络(Constitutional Neural Networks, CNN)是在多层神经网络的基础上发展起来的针对图像分类和识别而特别设计的一种深度学习方法.先回顾一下多层神经网络 ...

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

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

  10. 数字信号处理相关1(卷积(convolution)的几种解释)

    来自:https://blog.csdn.net/bitcarmanlee/article/details/54729807 来自:https://www.zhihu.com/question/222 ...

最新文章

  1. 【新技术】CentOS系统下docker的安装配置及使用详解
  2. 计算机网络·数据链路层.三个基本问题
  3. 学委收作业神器-查未交同学
  4. 【深度学习】深入浅出卷积神经网络及实现!
  5. IOS15全屏滑动返回
  6. java delegate怎么写_美团面试官:你说你们公司的Mybatis分页插件是你写的,给我说说它的设计原理?...
  7. 分布式防火墙技术及主要特点
  8. python输入日期计算天数_用python计算日期(1、返回指定日期所在的一周,2,计算一个日期的月份和天数加减)...
  9. 《白鹿原》金句摘抄(七)
  10. WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试) 接口测试与数据驱动...
  11. Java线程池(1) - 问题驱动“Java线程池”学习
  12. C#学习常用类(1003)---Timer类(System.Timers.Timer)
  13. php 获取src,html-使用PHP获取img src
  14. php autoload 性能,PHP __autoload()方法真的影响性能吗?
  15. js中动态载入css js样式
  16. 【解决】速达服务启动失败,文件无效
  17. 突发!ITELLYOU要改版了!
  18. html中两个块之间有空隙,css标签之间引发空隙问题解决办法
  19. Python爬取新闻联播(文字版)
  20. php 织梦手册,Dede标签快速手册

热门文章

  1. Shoulda, Woulda, Coulda
  2. 练习题|python常用模块
  3. 凸优化第八章几何问题 8.6 分类
  4. Mysql基础之 事务
  5. 用Redis实现分布式锁 与 实现任务队列【转载】
  6. 掘金翻译计划月报 — 2017 年 10 月
  7. 用函数调用的方法输出乘法口诀表
  8. 【CAS单点登录视频教程】 第03集 -- 配置 tomcat的 ssl
  9. 视频日志之android的总结与思考
  10. MATLAB连接SQLServer和MySql数据库