Open CV系列学习笔记(七)边缘保留滤波(EPF) 2021-02-01

news/2024/7/8 2:44:51

Open CV系列学习笔记(七)边缘保留滤波(EPF)

高斯双边

在这里插入图片描述

双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折中处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。具有简单、非迭代、局部的特点 。双边滤波器的好处是可以做边缘保存(edge preserving),一般过去用的维纳滤波或者高斯滤波去降噪,都会较明显地模糊边缘,对于高频细节的保护效果并不明显。
双边滤波器顾名思义比高斯滤波多了一个高斯方差sigma-d,它是基于空间分布的高斯滤波函数,所以在边缘附近,离的较远的像素不会太多影响到边缘上的像素值,这样就保证了边缘附近像素值的保存。但是由于保存了过多的高频信息,对于彩色图像里的高频噪声,双边滤波器不能够干净的滤掉,只能够对于低频信息进行较好的滤波。
代码:

def bi_demo(image):#高斯双边   
    dst = cv.bilateralFilter(image,0,100,15)
    cv.imshow("bi_demo",dst)

结果:
在这里插入图片描述

均值迁移

均值迁移模糊是图像边缘保留滤波算法中一种,经常用来在对图像进行分水岭分割之前去噪声,可以大幅度提升分水岭分割的效果。它的基本原理是:

对于给定的一定数量样本,任选其中一个样本,以该样本为中心点划定一个圆形区域,求取该圆形区域内样本的质心,即密度最大处的点,再以该点为中心继续执行上述迭代过程,直至最终收敛。

可以利用均值偏移算法的这个特性,实现彩色图像分割,Opencv中对应的函数是pyrMeanShiftFiltering。

这个函数严格来说并不是图像的分割,而是图像在色彩层面的平滑滤波,它可以中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉面积较小的颜色区域。
代码:

def shift_demo(image):#均值迁移
    dst = cv.pyrMeanShiftFiltering(image,10,50)
    cv.imshow("shift_demo",dst)

结果:
在这里插入图片描述

完整代码:

import cv2 as cv
import numpy as np


def bi_demo(image):#高斯双边   边缘保留(美颜滤镜^_^)
    dst = cv.bilateralFilter(image,0,100,15)
    cv.imshow("bi_demo",dst)


def shift_demo(image):#均值迁移
    dst = cv.pyrMeanShiftFiltering(image,10,50)
    cv.imshow("shift_demo",dst)


print("--------HEllow Python-------")
src = cv.imread("E:/picture/04.jpg")
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src)
shift_demo(src)
cv.waitKey(0)


cv.destroyAllWindows()

http://www.niftyadmin.cn/n/3711225.html

相关文章

c++位运算,|,~,^,,

关键字:c位运算 什么是位(bit)? 很简单,位(bit)就是单个的0或1,位是我们在计算机上所作一切的基础。计算机上的所有数据都是用位来存储的。一个字节(BYTE)由八个位组成,一个字(WORD)是二个字节或十六位,一…

Open CV系列学习笔记(八)图像直方图 2021-02-02

Open CV系列学习笔记(八)图像直方图 什么是图像直方图 图像直方图由于其计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以…

关于PInvoke 和COM Interop

关于PInvoke 和COM Interop.1. 平台调用利用平台调用这种服务,托管代码可以调用在动态链接库 (DLL)(如 Win32 API 中的 DLL)中实现的非托管函数。此服务将查找并调用导出的函数,然后根据需要跨越互用边界封送其参数(整…

51单片机板子在Keil中找不到Device设备该怎么办

之前我遇到这个问题是下载了五六个版本的KEIL想找相应的版本内置有STC15F2K60S2的芯片,但下载安装了好多版本也不行,也在网上找了很多解决方案,但大多都是都是MDK的PACK下载,直到有一天看到STC—ISP当中内置有相当方便的STC仿真器…

Open CV系列学习笔记(九)直方图应用 2021-02-03

Open CV系列学习笔记(九)直方图应用 直方图均衡化 在统计学中,直方图(英语:Histogram)是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对…

解决多线程代码

http://www.cnblogs.com/shanyou/archive/2008/10/25/1319283.html 解决多线程代码中的 11 个常见的问题 http://msdn.microsoft.com/zh-cn/magazine/cc817398.aspx 并行编程方面的设计注意事项 http://msdn.microsoft.com/zh-cn/magazine/cc872852.aspx 识别并发问题的工具和方…

Open CV系列学习笔记(十)直方图反向投影 2021-02-04

Open CV系列学习笔记(十)直方图反向投影 反向投影概念 反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式,简单来讲,反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的…

51单片机用STC—ISP烧录程序是一直显示“正在检测目标单片机···”冷启动板子没有反应

1、遇到这种情况可能是板子和电脑的USB转串口接触不良,如果点STC—ISP也点不动的情况下,可以采取关掉STC—ISP在重新打开解决。如果嫌麻烦可以直接拔掉板子上的USB接口才重新插一下。 2、如果以上方法无法解决,则可能是因为跳线帽接的不对劲&…