当前位置: 首页 > news >正文

【阅读笔记】《基于区间梯度的联合双边滤波图像纹理去除方法》

一、联合双边滤波背景

联合双边滤波(Joint Bilateral Filter, JBF)是一种图像处理技术,它在传统的双边滤波(Bilateral Filter, BF)基础上进行了改进,通过引入一个引导图(guidance image)来优化滤波过程。

双边滤波因其在平滑图像的同时能够保持边缘信息而受到广泛关注。然而,双边滤波在某些情况下会出现不稳定性,尤其是在边缘附近。为了解决这一问题,联合双边滤波被提出,它通过引入一个引导图来改进滤波过程。

二、 原理

联合双边滤波的基本原理与双边滤波相似,都是基于高斯函数来计算像素的权重。不同之处在于,联合双边滤波在计算权重时,不仅考虑了空间距离和像素值差异,还引入了引导图的信息。具体来说,联合双边滤波的公式如下:

Y ( i ) = 1 W i ∑ j ∈ S G σ d ( i , j ) G σ r ( i ^ , j ^ ) X j Y(i) = \frac{1}{W_{i}}\sum_{j\in{S}}G_{\sigma d}(i,j)G_{\sigma r}(\hat i,\hat j)X_{j} Y(i)=Wi1jSGσd(i,j)Gσr(i^,j^)Xj

其中, X X X 是待处理的图像, X ^ \hat X X^是引导图,i,j 分别是图像中的像素位置, W i W_i Wi 是归一化系数。

其中, σ d \sigma d σd σ r \sigma r σr是高斯参数, G σ d G_{\sigma d} Gσd G σ r G_{\sigma r} Gσr分别表示空间函数和灰度相似度函数,表示为

G σ d = e − 1 2 ( d ( i , j ) σ d ) 2 G_{\sigma d}=e^{-\frac{1}{2}(\frac{d(i,j)}{\sigma d})^2} Gσd=e21(σdd(i,j))2

G σ r = e − 1 2 ( X i − X j σ r ) 2 G_{\sigma r}=e^{-\frac{1}{2}(\frac{X_i-X_j}{\sigma r})^2} Gσr=e21(σrXiXj)2

其中, d ( i , j ) d(i,j) d(i,j)是i,j像素之间的欧氏距离

与双边的区别在于,联合滤波算法的引导图是低频图像,论文中是用高斯滤波,也可以用引导滤波等算法结果,看你的选择。

3. 实现

在OpenCV的contrib模块中,提供了联合双边滤波的API:jointBilateralFilter。该函数的参数包括引导图、待滤波的图像、滤波后的图像、像素邻域直径、灰度域sigma和空间域sigma。以下是Python语言的实现示例:

import cv2 as cv
src = cv.imread("image.jpg", cv.IMREAD_GRAYSCALE)  # 待滤波的图像
joint = cv.imread("joint_image.jpg", cv.IMREAD_GRAYSCALE)  # 引导图
dst = cv.ximgproc.jointBilateralFilter(joint, src, 9, 75, 75)  # 联合双边滤波
cv.imshow("Filtered Image", dst)
cv.waitKey(0)
cv.destroyAllWindows()

4. 应用效果

联合双边滤波在图像去噪的同时,能够更好地保留图像的边缘和纹理信息。相比于传统的双边滤波,联合双边滤波在处理含有复杂纹理的图像时,能够获得更清晰的边缘和更平滑的背景。下图依次是添加标准差为0.001的高斯滤波图、双边滤波处理图、联合滤波处理图

原始图
双边滤波结果
联合双边结果

5. 结论

联合双边滤波作为一种有效的图像去噪技术,通过引入引导图信息,提高了滤波的稳定性和效果。它在图像处理领域具有广泛的应用前景,尤其是在需要保持图像边缘信息的场景中。

测试程序链接如下:

https://github.com/AomanHao/Matlab-Image-Denoise/tree/master/Bilateral%20Filtering%20advanced

参考文献

《基于区间梯度的联合双边滤波图像纹理去除方法》
《基于快速联合双边滤波器和改进PCNN的红外与可见光图像融合》

我的个人博客主页,欢迎访问

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

我的知乎主页,欢迎访问


http://www.mrgr.cn/news/82083.html

相关文章:

  • 计算机的错误计算(二百)
  • 【数据库初阶】MySQL中表的约束(上)
  • JavaScript的基础知识
  • Momentum Contrast for Unsupervised Visual Representation Learning论文笔记
  • 基于Resnet、LSTM、Shufflenet及CNN网络的Daily_and_Sports_Activities数据集仿真
  • 【go每日一题】golang异常、错误 {源码、实践、总结}
  • STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
  • 深度学习blog-Transformer-注意力机制和编码器解码器
  • UE5材质节点BumpOffset
  • GDPU Vue前端框架开发 跨年大礼包
  • Linux(Centos 7.6)基础命令/常用命令说明
  • Linux系统
  • Log4j2的Policies详解、SizeBasedTriggeringPolicy、TimeBasedTriggeringPolicy
  • matlab-数字滤波器设计与实战
  • ESP-IDF学习记录(4) ESP-IDF examples目录
  • 【SQLi_Labs】Basic Challenges
  • 某网站手势验证码识别深入浅出(全流程)
  • 大模型WebUI:Gradio全解系列9——Additional Features:补充特性(下)
  • NFS V4网络文件共享新认识——筑梦之路
  • SpringCloudAlibaba实战入门之路由网关Gateway过滤器(十三)
  • 云效流水线自动化部署前端纯静态web网站
  • 四大自平衡树对比:AVL树、红黑树、B树与B+树
  • 2024/12/29 黄冈师范学院计算机学院网络工程《路由期末复习作业一》
  • 从0到机器视觉工程师(一):机器视觉工业相机总结
  • 【Leetcode 每日一题 - 扩展】面试题 04.10. 检查子树
  • 初始nginx