OpenCV-24双边滤波
一、概念
双边滤波对于图像的边缘信息能够更好的保存。其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相乘。
空间距离:指的是当前点与中心点的欧式距离。空间域的高斯函数及其数学形式为:

其中(xi,yi)为当前点的位置,(xc,yc)为中心点位置,sigma为空间域标准差。
灰度距离:指的是当前点灰度与中心点灰度的差的绝对值。值域高斯函数及其数学形式为:

其中gray(xi,yi)为当前点的灰度值,gray(xc,yc)为中心点的灰度值,sigma为值域标准差。
双边滤波本质上是高斯滤波,双边滤波和高斯滤波不同的就是:双边滤波既利用率位置信息又利用了像素信息来定义滤波窗口的权重。而高斯滤波只用了位置信息。
对于高斯滤波,仅用空间距离的权值系数与图像卷积后,确定中心点的灰度值。即认为离中心点越近的点,其权重系数越大。
双边滤波加入了对灰度信息的权重,即在邻域内,灰度值越接近中心点灰度值的点权重更大,灰度值相差大的点权重越小,此权重大小,则由值域高斯函数确定。
两者权重系数相乘,得到最终的卷积模板。由于双边滤波需要每个中心点邻域的灰度信息来确定其系数,所以其速度相比较一般的滤波慢的多,而且计算量增长速度为核大小的平方。

双边滤波可以保留边缘,同时可以对边缘内的区域进行平滑处理。(有美颜的效果)
如果在边界出现灰度值变化较大
二、代码演示
使用API---bilateralFilter(src, d, sigmaColor, sigmaSpace[,dst[,borderType]])
--- d相当于卷积核的大小,为整数
--- sigmaColor是计算像素信息使用的sigma
--- sigmaSpace是计算空间信息使用的sigma
示例代码如下:
import cv2
import numpy as npgirl = cv2.imread("beautiful women.png")
new_girl = cv2.bilateralFilter(girl, 7, sigmaColor=50, sigmaSpace=50)cv2.imshow("img", np.hstack((girl, new_girl)))
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果如下:

可以看出,右边的图片人物表面平滑,有美颜效果。
相关文章:
OpenCV-24双边滤波
一、概念 双边滤波对于图像的边缘信息能够更好的保存。其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相乘。 空间距离:指的是当前点与中心点的欧式距离。空间域的高斯函数及其数学形式为: 其中(xi,yi&…...
AI智能分析网关V4:太阳能+4G智慧水库远程可视化智能监管方案
一、背景需求分析 由于水库位置分散的原因,水库视频监控建设在立杆、布线等方面都存在一定的难度,且需要人力、物力的前期投入和后期维护。目前水库的监管存在一定的问题,管理人员工作强度大但管理质量并不高,人为巡检无法实时发…...
第8章-第8节-Java中的文件类File的简单介绍
1、我们已经写过File的相关代码: BufferedReader bf new BufferedReader(new FileReader(new File("aa.txt"))); 2、其实FIle这个类自身也是非常强大的,封装了很多操作文件/目录的方法,今天我们就需要去详细的学习这个类&#x…...
CTF-PWN-沙箱逃脱-【seccomp和prtcl-2】
文章目录 沙箱逃脱prtcl题HITCON CTF 2017 Quals Impeccable Artifact libc 2.24flag文件对应prctl函数检查源码思路exp 沙箱逃脱prtcl题 HITCON CTF 2017 Quals Impeccable Artifact libc 2.24 flag文件 此时的flag文件在本文件夹建一个即可 此时的我设置的flag为 对应prc…...
【Docker篇】使用Docker操作镜像
文章目录 🛸镜像🌺基本操作⭐docker --help⭐docker pull [ 参数 ]⭐docker images⭐docker save -- 导出⭐docker rmi -- 删除⭐docker load -- 导入 🛸镜像 镜像是指在计算机领域中,通过复制和创建一个与原始对象相似的副本的过…...
css宽度适应内容
废话不多说,看如下demo,我需要将下面这个盒子的宽度变成内容自适应 方法有很多,如下 父元素设置display:flex 实现子元素宽度适应内容 如下给父元素设置flex能实现宽度自适应内容 <!DOCTYPE html><html lang"en"><head><meta charset"U…...
粒子物理和原子核物理的理论在模拟和分析电路中的粒子束和辐射效应中的应用
粒子物理和原子核物理的理论可以应用于模拟和分析电路中的粒子束和辐射效应,特别是在粒子加速器和辐射探测器的设计和优化方面。通过这些理论的应用,可以提高加速器和探测器的性能,推动粒子物理和原子核物理的研究进展。粒子物理和原子核物理…...
Opentsdb官方优化文档 - 翻译
文档地址 : Tuning — OpenTSDB 2.4 documentation Tuning As with any database there are many tuning parameters for OpenTSDB that can be used to improve write and read performance. Some of these options are specific to certain backends, others are global. …...
JavaScript深拷贝与浅拷贝的全面解析
🧑🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》 目录 ✨ 前言 ✨ 正文 浅拷贝 对象的浅拷贝 数组的浅拷贝 浅拷贝的问题 深拷贝 什么是深拷贝…...
ESU毅速丨制造企业需不需要建设增材制造中心?
随着科技的不断发展,增材制造技术已经成为制造行业的新宠。越来越多的企业开始考虑建设增材制造中心,以提高生产效率、降低成本、加速产品创新。但是,对于制造企业来说,是否需要建设增材制造中心呢? 首先,我…...
Linux shell编程学习笔记39:df命令
0 前言1 df命令的功能、格式和选项说明 1.1 df命令的功能1.2 df命令的格式1.3 df命令选项说明 2 df命令使用实例 2.1 df:显示主要文件系统信息2.2 df -a:显示所有文件系统信息2.3 df -t[]TYPE或--type[]TYPE:显示TYPE指定类型的文件系统信…...
简单高效 LaTeX 科学排版 第004集 命令与环境
这是《简单高效LaTeX》的第四个视频,主要演示讨论基本命令与排版环境,还有保留字符。 视频地址:https://www.ixigua.com/7298100920137548288?id7298102807985390120&logTagf853f23a668f8a2ee405...
初识XSS漏洞
目录 一、XSS的原理和分类 二、Xss漏洞分类 1. 反射性xss 简单的演示: 2.基于DOM的XSS 简单的演示: 3.存储型XSS 编辑简单的演示 4、self xss 三、XSS漏洞的危害 四、XSS漏洞的验证 五、XSS漏洞的黑盒测试 六、XSS漏洞的白盒测试 七、XS…...
白嫖aws创建Joplin server服务器
网上有很多的Joplin服务器的搭建教程,但是基本都是抄来抄去,对初学者实在是太不友好了。 话不多说,说干就干,自己从头找资料搭了一个,这可能是全网最好的Joplin服务器搭建教程了。 aws服务器 aws的服务器还是很香的&…...
metartc5_jz源码阅读-p2p通过stun服务器进行通信
1. YangIpc.c/yang_create_ipc 需要设置stun服务器的ip地址和端口号 设置iceCandidateType为2,表示走stun,即向stun服务器发起请求获取本机的公网ip地址。 //设置iceServerIP和端口号,设置iceCandidate类型。 strcpy(session->avinfo.rtc…...
总结:Java程序员读书清单顺序
总结:Java程序员读书清单顺序,持续更新中。。。。。。 一经验提示:1.零基础不建议直接看计算机专业书籍,建议先去看视频教程2.本书单目录用作自学顺序记录,也适用于有Java开发基础的同志3.看计算机书籍可以完善自己的技…...
ubuntu通过virtualbox安装win虚拟机
系统:Ubuntu22.04 需要准备:下载你想用的windows的iso镜像,官方传送门。 一、安装virtualbox sudo apt-get install virtualbox安装完成后,打开Applications,找到virtualbox,点击启动 二、安装windows虚…...
云流量回溯的工作原理及关键功能
云计算和网络技术的快速发展为企业提供了更灵活、高效的业务运营环境,同时也引发了一系列网络安全挑战。在这个背景下,云流量回溯成为网络安全领域的一个关键技术,为企业提供了对网络活动的深入洞察和实时响应的能力。 一、 云流量回溯的基本…...
DCP文件传输的重要性与应用
在数字时代,文件传输已成为商业运作中不可或缺的一环。随着企业越来越多地采用云基础设施和服务,有效地在云和团队之间传输大文件和数据集变得至关重要。在这一背景下,数据复制协议(DCP)文件传输应运而生,引…...
JAVA面试部分——后端-线程后篇
3.12 如果在运行当中,遇到线程不够了,会以什么样的方式创建线程 线程池在运行过程中,如果遇到线程不够的情况,会根据线程池的类型和配置进行不同的处理: 对于固定大小的线程池:如果线程因异常结束ÿ…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...
