对图像的滤波处理通常在图像上加一个滤波器,滤波器最常见的类型是线性滤波器,输出像素值由原始像素值加权值确定:

g(i,j) =Σw,h f(i+w,j+h)*h(k,l), 其中h为卷积核,f为原始图像,g为目标图像。

3.2.1 boxfilter(方框滤波)

方框滤波是滤波器中最简单的一种,每一个输出像素值是卷积内像素值的平均值。

· 当normalize = true 时,盒式滤波就变成了均值滤波。也就是说,均值滤波是盒式滤波归一化(normalized)后的特殊情况。其中,归一化就是把要处理的量都缩放到一个范围内,比如(0,1),以便统一处理和直观量化。

· 当normalize = false时,为非归一化的盒式滤波,用于计算每个像素邻域内的积分特性,比如密集光流算法(dense optical flow algorithms)中用到的图像倒数的协方差矩阵(covariance matrices of image derivatives)。

方框滤波在opencv中通过调用boxFilter实现

3.2.2 高斯滤波

高斯滤波是一种线性平滑滤波,高斯滤波是通过对输入数组的每个点与输入的高斯滤波模板执行卷积计算然后将这些结果一块组成了滤波后的输出数组,通俗的讲就是高斯滤波是对整幅图像进行加权平均的过程,每一个像素点的值都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

高斯滤波在opencv中通过调用GaussianBlur实现


3.2.3 中值滤波

中值滤波器是非线性的,对一个像素的相邻区域进行操作已确定输出像素的值。该像素及它的相邻区域组成一个数组,同时如名字所示,中值滤波器仅仅计算这组数的中值,并用中值替换当前的像素值。中值滤波器在去除椒盐噪点方面有显著功效,因为噪点像素不会被选为中值(它或为极大值或为极小值),与之相反均值滤波器会大大受到噪点的影响,因为均值滤波器计算的是平均值,而噪点像素会使相邻像素的平均值发生变化。

在opencv 中通过调用medianBlur实现

3.2.4 双边滤波

双边滤波中双边的意思是同时考虑两条边(因素),这两条边分别是空间域和值域。这里的空间域是指考虑空间位置关系,根据距离核心位置的距离的远近给予不同的加权值,原理和高斯滤波一样。而值域是指考虑邻域范围内的像素差值计算出滤波器系数,类似于α-截尾均值滤波器(去掉百分率为α的最小值和最大之后剩下像素的均值作为滤波器)。

双边滤波是结合图像的空间邻近度和像素值相似度的一种折中处理,同时考虑空域信息和灰度相似性,达到保边去燥的目的,具有简单、非迭代、局部的特点。双边滤波在图像处理领域中有着广泛的应用,比如去噪、去马赛克、光流估计等等,对于高斯噪声,双边滤波比中值滤波的效果要好的多。

在opencv中双边滤波通过调用bilateralFilter()

opencv学习笔记2:图像滤波相关推荐

  1. C++下opencv学习笔记(一)(图像的简单读取丶显示与存储)

    C++下opencv学习笔记(一)(图像的简单读取丶显示与存储) 前言 学习C++ OpenCV,第一需要具备面向对象语言的基础,第二要对图像处理机器学习有基础了解,容易入门.觉得自己基础已经有了可以 ...

  2. OpenCV学习笔记(九)——图像轮廓(下)

    <OpenCV轻松入门:面向Python>学习笔记(九) 1-3 查找并绘制轮廓.矩特性及Hu矩 4-5 轮廓拟合及凸包 6. 利用形状场景算法比较轮廓 6.1 计算形状场景距离 6.2 ...

  3. Opencv学习笔记(八) -- 图像色彩空间转换

    1.常见图像色彩空间 RGB RGB色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通道 ...

  4. OpenCV学习笔记(七)——图像梯度及边缘检测

    图像梯度计算的是图像变化的速度.对于图像的边缘部分,其灰度值变化较大,梯度值也较大:相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小.一般情况下,图像梯度计算的是图像的边缘信息. ...

  5. [OpenCV学习笔记3][图像的加载+修改+显示+保存]

    正式进入OpenCV学习了,前面开始的都是一些环境搭建和准备工作,对一些数据结构的认识主要是Mat类的认识: [1.学习目标] 图像的加载:imread() 图像的修改:cvtColor() 图像的显 ...

  6. OpenCV学习笔记之图像融合

    一.线性融合操作 线性混合操作 也是一种典型的二元(两个输入)的 像素操作 : 通过在范围  内改变  ,这个操可以用来对两幅图像或两段视频产生时间上的 画面叠化 (cross-dissolve)效果 ...

  7. OPenCV学习笔记八-图像的滤波

    主要记录三种滤波函数的使用 VS2017 + Opencv3.2.0#include <opencv2/opencv.hpp> #include <iostream>using ...

  8. opencv学习笔记(六)---图像梯度

    图像梯度的算法有很多方法:sabel算子,scharr算子,laplacian算子,sanny边缘检测(下个随笔)... 这些算子的原理可参考:https://blog.csdn.net/poem_q ...

  9. OpenCV学习笔记五-图像混合

    将两张图片混合 P6 图像混合 #include<iostream> #include<opencv2/opencv.hpp>using namespace std; usin ...

  10. OpenCV学习笔记-边缘保留滤波EPF

    进行边缘保留滤波通常用到两个方法: 1.高斯双边滤波 具体代码: #高斯双边滤波 def bilateral_demo(img):dst = cv.bilateralFilter(src=img,d= ...

最新文章

  1. jQuery ajax contentType processData 笔记
  2. Python全栈工程师(Python3 所有基础内容 0-0)
  3. 如何从零开始搭建 CI/CD 流水线
  4. SSD相关文章及博客
  5. 众辰nz200变频器使用说明书_ABB变频器
  6. 前端学习(3251):dom的diff算法2
  7. ECSHOP彩虹易支付插件,彩虹易支付对接ECshop支付接口插件,ECSHOP对接易支付接口插件【2022免签约免申请免企业免年费个人支付接口】
  8. 求职面试准备——自我介绍
  9. 这些道理不懂,你注定就是穷打工的命
  10. 江西理工大学计算机网络基础试卷,无线网络技术作业(江西理工大学期末复习)...
  11. 寒假训练第九场 Brocard Point of a Triangle
  12. JPG转换成PDF转换器使用说明
  13. debian安装和基本使用
  14. 蓝牙APP开发你应该知道的几件事
  15. 学计算机的鼓励,鼓励学习的经典语句
  16. 【VSCode】全限定,分栏设置
  17. java列转行_关于java8根据某个字段分组,列转行的问题
  18. php5.6.36 xdebug,php配置xdebug | Soo Smart!
  19. VS2022快捷键修改 快速注释 行注释 ctrl +/
  20. mcjava盗版联机_MC联机教程

热门文章

  1. n个人围成一圈指针c语言,C语言N个人围成一圈报数用二级指针实现,不用数组!...
  2. valgrind 内存泄露检测
  3. C# List用法;用Find查找list中的指定元素
  4. Linux开机加载新内核,linux-kernel – 为什么加载内核地址,ramdisk在启动时很重要?...
  5. mysql主从复制是拉模式吗,CentOS 7系统配置MySQL的主从复制模式 (Master-Slave Replication)...
  6. vivox7Android版本怎么升级,vivo公布安卓7.1系统更新计划,老款机型也能升级
  7. 家里网连github慢怎么办_果农问事台:果树拉枝后枝条梢头有上翘生长怎么办?...
  8. nfs 端口_Linux挂载NFS,偶发执行df命令卡顿
  9. rpm包安装失败的解决办法
  10. ajax执行成功后,在success回调函数中把后台返回的list还原到html的table中