第二十九节高斯双边模糊

高斯双边模糊是一种更高级的图像模糊方法。

  1. 原理

• 它在考虑空间距离(像素位置)的同时,还考虑了像素值的差异(灰度或颜色差异)。传统的高斯模糊(只考虑空间距离)主要是根据像素离中心像素的远近分配权重,而双边模糊在此基础上,对于与中心像素值差异较大的像素,会进一步降低其权重。

• 例如,在处理图像边缘时,边缘一侧的像素和另一侧的像素值差异较大,双边模糊会使这些像素对边缘像素的影响变小,从而在模糊的同时更好地保留边缘细节。

  1. 公式及权重计算(简单理解)

• 它有两个高斯函数来计算权重。一个是空间域高斯函数,和普通高斯模糊类似,用于考虑像素的空间距离。另一个是值域高斯函数,用于考虑像素值的差异。最终的权重是这两个高斯函数计算出的权重的乘积。

• 假设空间域高斯函数计算出的某像素权重为,值域高斯函数计算出的权重为,那么该像素的最终权重。

  1. 应用场景

• 常用于需要保留边缘细节的模糊处理。比如在人像摄影中,当想要模糊背景同时保持人物边缘清晰时,高斯双边模糊是很好的选择。它也用于对图像进行高质量的降噪处理,因为它可以避免在去除噪声的同时模糊掉重要的细节。

API

bilateralFilter(src, dst, d, sigmaColor, sigmaSpace, borderType)。

• src:输入图像,即要进行双边模糊处理的原始图像,可以是彩色图像或者灰度图像。

• dst:输出图像,用来存储双边模糊后的图像。如果不指定,函数会自动创建一个合适的输出图像。

• d:表示在滤波时每个像素邻域的直径。如果这个值为非正数,它会根据sigmaSpace参数自动计算。一般来说,较大的值会使模糊效果更明显,但计算速度可能会变慢。

• sigmaColor:颜色空间滤波器的标准差。这个参数衡量了像素值(如RGB值)之间的差异。较大的值意味着更多的颜色混合,模糊效果更明显。

• sigmaSpace:坐标空间滤波器的标准差。它决定了根据像素位置进行模糊的程度,较大的值会使较远的像素也对中心像素产生较大的影响。

• borderType(可选):用于处理图像边界的像素,和其他滤波函数中的边界类型类似,比如复制边界像素、反射边界像素等。



void QUickdemo::Bifilter_Blur(Mat& image) {

Mat dstImage;

bilateralFilter(image, dstImage, 0, 100, 10);

// 使用 bilateralFilter 函数对输入图像 image 进行双边高斯模糊处理,结果存储在 dstImage 中。
// 第一个参数为输入图像,第二个参数为输出图像,第三个参数为像素邻域直径,这里设置为 0,表示自动计算。
// 第四个参数为颜色空间滤波器的标准差,这里设置为 100,表示颜色差异较大时权重下降较快。
// 第五个参数为坐标空间滤波器的标准差,这里设置为 10,表示根据像素位置进行模糊的程度适中。

imshow("双边高斯模糊", dstImage);

}

相关推荐
To_OC27 分钟前
大模型蒸馏是啥?说白了就是大厨带徒弟的学问
人工智能·llm·agent
新手来了@click41 分钟前
JAVA+AI 简化开发操作|文章被 AI Agent 技术社区收录分享
人工智能
GuWenyue1 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue1 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
老云讲算力市场2 小时前
WAIC首日观察:国产算力与机器人加速落地,奇点算力迎来产业新机遇
人工智能·科技
糖果店的幽灵2 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
小林ixn2 小时前
大模型随机说话的秘密:Temperature 和 Top K 深度解析,LangChain 实战调优
人工智能·langchain
ALINX技术博客2 小时前
ALINX 亮相 2026 WAIC 世界人工智能大会,展示 AI 视觉 FPGA+GPU 异构计算与电子后视镜解决方案
人工智能·ai·fpga·世界人工智能大会·电子后视镜
程序员老猫2 小时前
当 AI 能写 80% 的代码时,后端工程师的核心价值还剩什么?
人工智能
想会飞的蒲公英2 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理