图像平滑处理,从数值上来说是一种平滑化,从图形上来说相当于产生了模糊效果,中间点失去细节。

图像平滑处理就是对图像进行滤波,所谓滤波就是重新计算图像中的各个像素点,使该像素点的值与周围的像素点的值相近。

计算各个点的值通常使通过指定一个滤波核,并会将该滤波核在图像上滑动,从而能够计算除整幅图像的各个像素点的值。滤波核的大小通过为奇数,一般为3,5,7。

OpenCV中的几种滤波方式:

  • 均值滤波
  • 方框滤波
  • 中值滤波
  • 高斯滤波
滤波方式 优点
均值滤波

均值滤波是用每一个像素和它周围像素计算出来的平均值替换图像中每一个像素。

从频率域观点来看均值滤波是一种低通滤波器(让图像的低频部分经过,一般弱化边缘,会获得比较平缓的图像),高频信号将会去掉,所以能够帮助消除图像尖锐噪声,实现图像平滑,模糊等功能。

由于此方法不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊。

消除尖锐噪声,实现图像平滑,模糊等功能。
中值滤波

中值滤波也是消除图像噪声最多见的手段之一,特别是消除椒盐噪声,中值滤波的效果要比均值滤波更好。

它的基本原理是计算出数字图像中的一点的一个邻域中的各点值的中值(中间值),并使用该中值将将该点原值代替。

能够理解为使用一个窗口沿图像移动,用窗口内全部象素灰度的中值来代替窗口中心位置的象素灰度。

消除椒盐噪声。
高斯滤波

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,普遍应用于图像处理的减噪过程。

通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每个像素点的值,都由其自己和邻域内的其余像素值通过加权平均后获得。

能够理解为用一个模板(或称卷积、掩模)扫描图像中的每个像素,用模板肯定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

消除高斯噪声。

均值滤波

均值滤波就是使用滤波核计算所有像素的平均值

void blur( InputArray src, OutputArray dst, Size ksize, Point anchor = Point(-1,-1), int borderType = BORDER_DEFAULT );

方框滤波

方框滤波的滤波方式和均值滤波基本相同,唯一不同的是方框滤波可选择,在所有数值加起来之后是否要求平均值,如果求平均,那么方框滤波就等价于均值滤波;如果不求平均,那么值如果超过255的话就等于255。

void boxFilter( InputArray src, OutputArray dst, int ddepth, Size ksize, Point anchor = Point(-1,-1), bool normalize = true, int borderType = BORDER_DEFAULT );

中值滤波

中值滤波就是对所有像素进行排序,取中间值

void medianBlur( InputArray src, OutputArray dst, int ksize );

高斯滤波

在均值滤波中滤波核中的值都为1,相当于所有像素都会乘以1,然后相加起来求平均。高斯滤波的滤波核中的值不全是1,与要计算的像素点的位置越接近,值会越大,越远值会越小,也就相当于一个权重矩阵

void GaussianBlur( InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY = 0, int borderType = BORDER_DEFAULT );

参数:

sigmaX:x方向的标准方差。可设置为0让系统自动计算。

sigmaY:y方向的标准方差。可设置为0让系统自动计算。

高斯模糊(高斯滤波)的原理与算法_lsh呵呵的博客-CSDN博客_高斯滤波的基本原理

高斯滤波原理剖析_fangyan的博客-CSDN博客_高斯滤波的基本原理

图像处理基础(4):高斯滤波器详解 - Brook_icv - 博客园

【OpenCV学习笔记】图像平滑处理相关推荐

  1. OpenCV学习笔记(十三):霍夫变换:HoughLines(),HoughLinesP(),HoughCircles( )

    OpenCV学习笔记(十三):霍夫变换:HoughLines(),HoughLinesP(),HoughCircles( ) 1.霍夫线变换HoughLines() OpenCV支持三种不同的霍夫线变 ...

  2. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

  3. OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法...

    函数中的代码是部分代码,详细代码在最后 1 cv2.boundingRect 作用:矩形边框(boundingRect),用于计算图像一系列点的外部矩形边界. cv2.boundingRect(arr ...

  4. opencv学习笔记(二):基于肤色的人手检测

    opencv学习笔记(二):基于肤色的人手检测 原文:http://blog.csdn.net/wzmsltw/article/details/50849810 先写了人手的检测程序,下一步基于检测程 ...

  5. python做直方图-python OpenCV学习笔记实现二维直方图

    本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...

  6. OpenCV学习笔记大集锦

    转载自: OpenCV学习笔记大集锦 – 视觉机器人 http://www.cvrobot.net/collect-opencv-resource-learn-study-note-chinese/ ...

  7. OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core OpenCV学习笔记(五十七)——在同一窗口显示多幅图片 OpenCV学习笔记(五十八)——读《Mast

    OpenCV学习笔记(五十六)--InputArray和OutputArray的那些事core 看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArray或者OutputArray ...

  8. OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五

    OpenCV学习笔记(五十一)--imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitch ...

  9. OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算

    OpenCV学习笔记(四十六)--FAST特征点检测features2D 特征点检测和匹配是计算机视觉中一个很有用的技术.在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用.这一次先介绍特征点检 ...

  10. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

最新文章

  1. 线程A向队列Q中不停写入数据,线程B从列队Q中不停读取数据(只要Q中有数据)。
  2. UGUI 中Dropdown控件的使用经验
  3. 安装VMware并新建虚拟机
  4. 【译】KNOWLEDGE EXTRACTION FROM UNSTRUCTURED TEXTS
  5. try-except语句与else子句联合使用处理可能出现的程序异常
  6. 解决UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 108: ordinal not in range(12
  7. asp.net 中 SESSION和COOKIE的使用
  8. Oracle 统计信息备份/表分析
  9. brew 安装php56,homebrew安装php5.6后的信息
  10. 开机按F1才能进入(启动)系统的解决方案
  11. linux打印机无法识别usb设备,linux支持usb打印机,不用驱动
  12. linux 怎么连接到网络打印机,如何在网络上的Windows,Mac和Linux PC之间共享打印机...
  13. NYOJ34韩信点兵
  14. kivy制作安卓APP--简单音乐播放器
  15. 2018,我们就是星辰大海
  16. Win10双击调试 转载 http://blog.csdn.net/sagittarius_warrior/article/details/51305046
  17. 语法基础课——第二讲 习题
  18. NOIP2018 tg游记
  19. Qt中关于delete的应用
  20. 第四节 结构化分析方法的概念

热门文章

  1. (CRサクラ大戦3)樱花大战3最佳女主角
  2. bootstrap validator简单非空校验(data-bv-notempty)
  3. 【数据可视化】-数据下钻
  4. Web 前端—HTML+CSS系列
  5. 使用Vue获取DOM元素
  6. 教你如何在linux中创建个人用户主页
  7. 软件测试常见的六大类型和关注点分析
  8. Systemback无法将超过4G的sblive文件转存为镜像文件的解决办法
  9. 传奇私服代码公布全集(4)
  10. 手机阅读EPUB的四大利器