均值模糊无法克服边缘像素信息丢失缺陷,原因是均值滤波是基于平均权重,赋予图像内的像素与图像边缘像素一样的比值权重,图像处理是会使得边缘部分图像部分像素信息丢失;

高斯模糊部分克服了该缺陷,但是无法完全避免,因为没有考虑像素值的不同 ;

高斯双边模糊,即双边滤波器是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像轮廓不变

一.双边滤波器 (Bilateral Filter)

当图像在变化程度平缓的区域时,邻域中的像素值(RGB值)差距相差不大。因此此时的双边就是普通的高斯滤波,达到对图像平滑的效果。

当图像在变化程度剧烈的区域,比如在边缘区域时,邻域中的像素值(RGB值)差距相差很大。此时高斯函数计算出的值wr朝0值趋近,颜色差值越大,wr越逼近0,最终整个式子的值逼近于0。最终的结果是权值为0。因此在最终计算时,该处将不影响输出值。

Bilateral加入了相似程度分部以后可以将源图像左侧那些跟当前像素差值过大的点给滤去,这样就很好地保持了边缘。

平滑处理输入图像不仅可以消除噪音,还平滑了图像边缘。为了避免这种情况,我们可以使用双边滤波器。一般的高斯模糊在进行采样时主要考虑了像素间的空间距离关系,但是却并没有考虑像素值之间的相似程度,因此这样我们得到的模糊结果通常是整张图片一团模糊。Bilateral blur的改进就在于在采样时不仅考虑像素在空间距离上的关系,同时加入了像素间的相似程度考虑,因而可以保持原始图像的大体分块进而保持边缘。

以与高斯滤波器类似的方式,双边滤波器还考虑具有分配给它们中的每一个的权重的相邻像素。这些权重有两个分量,第一个是高斯滤波器使用的相同权重。第二个组件考虑了相邻像素和评估像素之间的强度差异。

Bilateral加入了相似程度分部以后可以将源图像左侧那些跟当前像素差值过大的点给滤去,这样就很好地保持了边缘。

API 函数接口:

bilateralFilter(Mat src,Mat dst,int d,double sigmaColor,double sigmaSpace, int borderType)
src : 源8位或浮点,1通道或3通道图像。
dst : 与src具有相同大小和类型的目标映像。
d : 过滤期间使用的每个像素邻域的直径。如果它是非正数,则从sigmaSpace计算。
sigmaColor : 过滤颜色空间中的西格玛。参数的值越大意味着像素邻域内的更远的颜色(参见sigmaSpace)将混合在一起,从而产生更大的半等颜色区域。
sigmaSpace : 在坐标空间中过滤西格玛。较大的参数值意味着只要它们的颜色足够接近,更远的像素就会相互影响(参见sigmaColor)。当d> 0时,无论 sigmaSpace如何,它都指定邻域大小。否则,d与sigmaSpace成比例。
borderType : 用于外推图像外部像素的边框模式

=========================================================================

代码实现:

图像处理效果:

二.中位数滤波器 (Median Filter)

中值滤波器遍历图像的每个像素元素,并用其相邻像素的中值(位于评估像素周围的方形邻域中的中心像素)替换每个像素的值。

API函数接口 :

medianBlur(Mat src,Mat dst,int i)
src : 源图像椒盐噪声有很好的抑制作用
dst : 目标图像,必须与src的类型相同
i : 内核的大小(掩膜图片的大小)

=========================================================================

代码实现:

#include"stdafx.h"
#include<opencv2/opencv.hpp>
#include<iostream>using namespace cv;int main(int argc, char** argv) {Mat srcImage, dst;srcImage = imread("F:/photo/qx.jpg");if (srcImage.empty()) {printf("photo error");return -1;}namedWindow("input_image", WINDOW_AUTOSIZE);imshow("input_image", srcImage);medianBlur(srcImage, dst, 3);namedWindow("medianBlu", WINDOW_AUTOSIZE);imshow("medianBlu", dst);waitKey(0);return 0;
}

图像处理效果:

OpenCV图像处理学习九,双边滤波器 (Bilateral Filter)和中位数滤波器 (Median Filter)相关推荐

  1. OpenCV与图像处理学习九——连通区域分析算法(含代码)

    OpenCV与图像处理学习九--连通区域分析算法(含代码) 一.连通区域概要 二.Two-Pass算法 三.代码实现 一.连通区域概要 连通区域(Connected Component)一般是指图像中 ...

  2. OpenCV图像处理专栏九 | 基于直方图的快速中值滤波算法

    转载自:https://zhuanlan.zhihu.com/p/98092747  侵删 前言 这是OpenCV图像处理专栏的第9篇文章,主要介绍一个基于直方图的快速中值滤波算法,希望对大家有帮助. ...

  3. OpenCV 图像处理学习手册:1~5

    原文:Learning Image Processing with OpenCV 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 计算机视觉 译文集],采用译后编辑(MT ...

  4. opencv图像处理学习随笔:帮助文档运算公式中saturate的含义

    ☞ ░ 前往老猿Python博文目录 ░ 在opencv文档中中,加法运算的一种计算公式如下: dst(I)=saturate(src1(I)+src2(I))if mask(I)≠0 类似的公式还有 ...

  5. OpenCV图像处理学习二十,图像直方图均衡化原理与实现

    一.图像直方图的概念 图像直方图,是指对整个图像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图.直方图反映了图像灰度的分布情况,是图像的统计学特征.图像的灰度直方 ...

  6. OpenCV图像处理学习六,像素操作,使用line,ellipse,ellipse,rectangle,fillPoly函数绘制线、矩形、圆、椭圆等基本图形以及C++随机数产生器RNG的应用

    一.Point与Scalar 使用cv::Point与cv::Scalar Point表示2D平面上一个点x,y Point p; p.x = 10; p.y = 8; 或者 p = Pont(10, ...

  7. OpenCV图像处理学习十三,图像金字塔——高斯金字塔和拉普拉斯金字塔

    一.图像金字塔概念 我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像放大和缩小,但是这里我们介绍图像金字塔 . 一个图像金字 ...

  8. OpenCV图像处理学习十八,霍夫变换实现交通车道线检测

    一.霍夫变换 经典霍夫变换用来检测图像中的直线,后来霍夫变换经过扩展可以进行任意形状物体的识别,例如圆和椭圆.霍夫变换运用两个坐标空间之间的变换,将在一个空间中具有相同形状的曲线或直线映射到另一个坐标 ...

  9. python+OpenCV图像处理(九)图像金字塔

    图像金字塔        图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构.图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步 ...

最新文章

  1. SQL Server 2008, 2008 R2, 2012 and 2014 完全支持TLS1.2加密传输
  2. c# 取 list前100条数据
  3. [云炬创业管理笔记]第6章制定创业行动测试3
  4. 自动化集成:Pipeline整合Docker容器
  5. 【Python】【Python库】Python3.7.2 - 字符串str类 (2)
  6. audio标签的controls属性_HTML5 新增标签和属性
  7. 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护 2
  8. 使用迅捷的WDS功能,无线中继小米路由器
  9. Roman to Integer:转换罗马数字到阿拉伯数字
  10. oracle 02085,【DBLINK】“ORA-02085: database link %s connects to %s”故障排查及处理策略两则...
  11. 苹果手机微信中打开app下载链接跳转不到app store怎么办
  12. mysql 语句 面试题
  13. js获取ISO8601规范时间,使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ
  14. 没得选这件事是人生常态
  15. MySQL数据库备份练习
  16. Rx第三部分--深入序列
  17. mysql集群方案PXC_【Mysql】MySQL集群方案之PXC(percona xtradb cluster)
  18. voxel hashing
  19. Python 中的简单算术计算
  20. 9.0 桌面应用QuickStep

热门文章

  1. google学术爬虫
  2. 职场老司机:能走捷径,为什么不呢?
  3. 曾仕强《中国式管理-人际关系学》笔记 下
  4. LeetCode(数据库)- 净现值查询
  5. 高阶常微分方程的数值解法(runge-kutta的高阶形式)
  6. 网络工程师必备测试网络软件,网络工程师都知道的几款网络故障诊断工具
  7. 程序员月薪2万,被大学女友怒怼:毕业后年薪50万才是正常水平
  8. 魅族flashfire_高通平台所有黑砖(不开机)手机通用救砖方法
  9. React的移动端项目打包成手机的app软件apk格式
  10. python中true_python中的true是什么