均值与滤波的缺点:并没有考虑中心像素点对整个输出像素的贡献,实际上锚定的那个点贡献应该是最大的高斯滤波的缺点:当边缘值梯度很大的时候,应减少中心像素点的权重,而高斯滤波没有考虑**边缘保留滤波,实质上是区分高斯模糊的做法,将相对于差别较大的像素点区域进行区分(即,边缘是像素差异最大的地方),而非一统地取权重。**无论是均值还是高斯都是属于模糊卷积,模糊之后图像的边缘信息不复存在。边缘保留滤波算法(EPF)通过卷积处理实现图像模糊的同时对图像边缘不会造成破坏,滤波之后的输出完整的保存了图像整体边缘(轮廓)信息。边缘保留滤波:高斯双边均值迁移

高斯双边

高斯模糊是考虑图像空间位置对权重的影响,但是它没有考虑图像像素分布对图像卷积输出的影响,双边模糊考虑了像素值分布的影响,对像素值空间分布差异较大的进行保留从而完整的保留了图像的边缘信息。

双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折中处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。双边滤波器顾名思义比高斯滤波多了一个高斯方差sigma-d,它是基于空间分布的高斯滤波函数,所以在边缘附近,离的较远的像素不会太多影响到边缘上的像素值,这样就保证了边缘附近像素值的保存。但是由于保存了过多的高频信息,对于彩色图像里的高频噪声,双边滤波器不能够干净的滤掉,只能够对于低频信息进行较好的滤波。

 dst = cv.bilateralFilter(src=img, d, sigmaColor, sigmaSpace)src:原图像d: 像素的领域直径,可由sigmaColor和sigmaColor计算得到sigmaColor: 颜色空间的标准方差,一般越大越好sigmaSpace: 坐标空间的标准方差(像素单位),一般越小越好
import cv2 as cv
import numpy as npdef bi_demo(img):dst = cv.bilateralFilter(img, 0, sigmaColor=100, sigmaSpace=15)
#           src:原图像
#           d: 像素的领域直径,可由sigmaColor和sigmaColor计算得到
#           sigmaColor: 颜色空间的标准方差,一般越大越好
#           sigmaSpace: 坐标空间的标准方差(像素单位),一般越小越好cv.imshow('dst',dst)img = cv.imread('mazi.jpg')
cv.imshow('img',img)
bi_demo(img)
cv.waitKey(0)
cv.destroyAllWindows()

均值迁移

均值偏移滤波处理,想当与把图片转油画的操作
基本原理是:对于给定的一定数量样本,任选其中一个样本,以该样本为中心点划定一个圆形区域,求取该圆形区域内样本的质心,即密度最大处的点,再以该点为中心继续执行上述迭代过程,直至最终收敛。 通过均值迁移来进行边缘保留滤波有时会导致图像过度模糊。
图像在色彩层面的平滑滤波,它可以中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉面积较小的颜色区域。

cv.pyrMeanShiftFiltering(src=img, sp=15, sr=20)
src: 原图像
sp:空间窗的半径(The spatial window radius)
sr: 色彩窗的半径(The color window radius)
二者设置的值越大,对图像色彩的平滑效果越明显
1. 迭代空间构建:

以输入图像上src上任一点P0为圆心,建立物理空间上半径为sp,色彩空间上半径为sr的球形空间,物理空间上坐标2个—x、y,色彩空间上坐标3个—R、G、B(或HSV),构成一个5维的空间球体。
其中物理空间的范围x和y是图像的长和宽,色彩空间的范围R、G、B分别是0~255。

2. 求取迭代空间的向量并移动迭代空间球体后重新计算向量,直至收敛:

在1中构建的球形空间中,求得所有点相对于中心点的色彩向量之和后,移动迭代空间的中心点到该向量的终点,并再次计算该球形空间中所有点的向量之和,如此迭代,直到在最后一个空间球体中所求得的向量和的终点就是该空间球体的中心点Pn,迭代结束。

3. 更新输出图像dst上对应的初始原点P0的色彩值为本轮迭代的终点Pn的色彩值,如此完成一个点的色彩均值漂移。
4. 对输入图像src上其他点,依次执行步骤1,、2、3,遍历完所有点位后,整个均值偏移色彩滤波完成,这里忽略对金字塔的讨论。

原文链接:[https://blog.csdn.net/dcrmg/article/details/52705087]

import cv2 as cv
import numpy as npdef bi_demo(img):dst = cv.bilateralFilter(img, 0, sigmaColor=100, sigmaSpace=15)
#           src:原图像
#           d: 像素的领域直径,可由sigmaColor和sigmaColor计算得到
#           sigmaColor: 颜色空间的标准方差,一般越大越好
#           sigmaSpace: 坐标空间的标准方差(像素单位),一般越小越好cv.imshow('dst',dst)def shift_demo(img,sp,sr):dst = cv.pyrMeanShiftFiltering(img, sp, sr)
# src: 原图像
# sp:空间窗的半径(The spatial window radius)
# sr: 色彩窗的半径(The color window radius)
# 二者设置的值越大,对图像色彩的平滑效果越明显cv.imshow('sdst',dst)img = cv.imread('left_01.png')
cv.imshow('img',img)
# bi_demo(img)
shift_demo(img,10,10)
cv.waitKey(0)
cv.destroyAllWindows()

均值迁移之后使用漫水算法进行 图像分割

OpenCV--边缘保留滤波(EPF)相关推荐

  1. 小白学python(opencv边缘保留滤波EPF)

    边缘保留滤波 高斯模糊只考虑了权重,只考虑了像素空间的分布, 没有考虑像素值和另一个像素值之间差异的问题,如果像素间差异较大 的情况下(比如图像的边缘),高斯模糊会进行处理,但是我们不需要 处理边缘, ...

  2. opencv进阶学习笔记5:图像模糊操作,图像锐化,边缘保留滤波EPF(图像滤镜)

    基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 模糊操作 方法:均值模糊,中值模 ...

  3. opencv学习八:高斯模糊和边缘保留滤波EPF

    1.高斯模糊 1.1 numpy 实现高斯模糊 代码如下: import cv2 as cv import numpy as np#截断函数 def clamp(pv):if pv > 255: ...

  4. OpenCV—边缘保留滤波(EPF)

    高斯双边滤波 前文提到的高斯模糊只考虑了像素空间的分布,而没有考虑差异问题.下图十分形象的说明了边缘保留滤波的原理.一张黑白分明存在噪声的图片通过高斯滤波保留边缘将二者区分开来. 代码解析: # 边缘 ...

  5. 八、边缘保留滤波(EPF)

    一.概念 边缘保留滤波(EPF,edge preserving filtering) 二.高斯双边 cv2.bilateralFilter(image,0,100,15)100为差异,15为周围的区域 ...

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

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

  7. 图像处理之积分图应用二(快速边缘保留滤波算法)

    图像处理之积分图应用二(快速边缘保留滤波算法) 一:基本原理 传统的图像边缘保留滤波算法-如高斯双边模糊.Mean-Shift模糊等计算复杂.效率比较低,虽然有各种手段优化或者快速计算方法,当时算法相 ...

  8. Python+opencv学习记录8:边缘保留滤波(EPF)

    文章目录 1.高斯双边模糊 1.1原理 1.2代码解析 2.均值迁移模糊 2.1.原理 2.2.代码解析 完整代码 1.高斯双边模糊 1.1原理 前文提到的高斯模糊只考虑了像素空间的分布,而没有考虑差 ...

  9. OpenCV Python学习笔记(5)—— 边缘保留滤波(EPF)

    1 边缘保留滤波 高斯双边 均值迁移 2 测试 import cv2 as cv import numpy as npdef bi_demo(image):dst = cv.bilateralFilt ...

  10. 11 边缘保留滤波(EPF)

    import cv2 as cv import numpy as npdef bi_demo(image): # 双边滤波dst = cv.bilateralFilter(image, 0, 100, ...

最新文章

  1. 【入门级】自学Python第一步,记住这7大编码规范
  2. linux 卸载 flash,使用率下降到8%,Chrome 87将完全移除Flash
  3. php函数、php定义数组和数组遍历
  4. 《spring-boot学习》-02-hello world
  5. 计算机程序的构造和解释1构造过程抽象1.2过程与它们所产生的计算
  6. angularjs 服务详解
  7. 信息文档分工会在运动会象棋比赛中夺得佳绩
  8. as ssd测试软件得分分析,SSD性能评判:教你读懂利用AS SSD BenchMark测试SSD固态硬盘性能的参数-网络教程与技术 -亦是美网络...
  9. html+js实现分页功能
  10. 稳压二极管和TVS管知识点总结
  11. 学习笔记 Tianmao 篇 recyclerView 辅助的RecycleAdapterImpl类(适配自定义 模板)
  12. 【JS正则表达式验证】
  13. 智能对话机器人开发实战案例剖析(2)
  14. CSS中flex对部分IOS版本兼容性问题
  15. html鼠标滚轮监听,js鼠标滑轮滚动监听触发事件
  16. Distiller:正则化
  17. UI设计趋势中的新拟物化图标设计素材模板
  18. 我的新博客地址https://xmmup.com
  19. ros局部路径规划器dwa
  20. solidity 循环语句

热门文章

  1. 低功耗设计 Clock Gating
  2. 【开源项目】之智能婴儿摇篮
  3. 便携式计算机安全防护指南(转)
  4. mahout itemCF 简单使用
  5. Scripting Introduction
  6. 解决安装Visual Studio .NET 2003 时FrontPage 2000 WEB 扩展客户端
  7. html用frontpage编写,在FrontPage2000用HTML
  8. 百度互联网创业者俱乐部 搜索引擎优化指南
  9. 云计算助力浙江政务服务网构建应用汇聚平台
  10. 找工作应该记住的话……