【经典文献】双边滤波

news2024/11/12 11:16:53

文章目录

    • ICCV 1998
    • 基本思路
    • 双边高斯滤波

ICCV 1998

1995年,Aurich和Weule提出一种非线性高斯滤波器,三年后,Tomasi和Manduchi将其用于图像平滑,并将其命名为双边滤波。

  • Aurich, V., & Weule, J. (1995). Non-linear Gaussian filters performing edge preserving diffusion. In Proceedings of the DAGM symposium
  • Tomasi, C., & Manduchi, R. (1998). Bilateral filtering for gray and color images. In Proceedings of the international conference on computer vision (pp. 839–846). New York: IEEE Press

基本思路

在1995年这篇ICCV的论文中,首先给出了传统的域滤波和范围滤波的变换形式

h d ( x ⃗ ) = k d − 1 ( x ⃗ ) ∬ f ( ξ ⃗ ) c ( ξ ⃗ , x ⃗ ) d ξ ⃗ h r ( x ⃗ ) = k r − 1 ( x ⃗ ) ∬ f ( ξ ⃗ ) s ( f ( ξ ⃗ ) , f ( x ⃗ ) ) d ξ ⃗ h_d(\vec x) = k_d^{-1}(\vec x)\iint_{} f(\vec \xi)c(\vec \xi, \vec x)\mathrm d\vec \xi\\ h_r(\vec x) = k_r^{-1}(\vec x)\iint f(\vec \xi)s(f(\vec \xi),f(\vec x))\mathrm d\vec \xi\\ hd(x )=kd1(x )f(ξ )c(ξ ,x )dξ hr(x )=kr1(x )f(ξ )s(f(ξ ),f(x ))dξ

其中 ξ ⃗ \vec \xi ξ x ⃗ \vec x x 邻域中的某个像素点, f f f为某像素点的强度, c ( ξ ⃗ , x ⃗ ) c(\vec \xi, \vec x) c(ξ ,x ) x x x ξ \xi ξ的空间临近度(geometric closeness); s ( f ( ξ ⃗ ) , f ( x ⃗ ) ) s(f(\vec \xi),f(\vec x)) s(f(ξ ),f(x ))为颜色相似度(photometric similarity)。 k d , k r k_d, k_r kd,kr为滤波过程中用于归一化的直流分量

k d ( x ⃗ ) = ∬ c ( ξ ⃗ , x ⃗ ) d ξ , k r ( x ⃗ ) = ∬ s ( ξ ⃗ , x ⃗ ) d ξ ⃗ k_d(\vec x) = \iint c(\vec \xi, \vec x)\mathrm d\xi,\quad k_r(\vec x) = \iint s(\vec \xi, \vec x)\mathrm d\vec \xi kd(x )=c(ξ ,x )dξ,kr(x )=s(ξ ,x )dξ

文中给出的二重积分的范围是 ± ∞ \pm\infty ±,但实际上可能仅仅局限在 x x x的邻域内,故而这里并未著明上下标。

将这两个滤波过程合并在一起,即可得到双边滤波的一个抽象形式

h ( x ⃗ ) = k − 1 ( x ⃗ ) ∬ f ( ξ ⃗ ) c ( ξ ⃗ , x ⃗ ) s ( f ( ξ ⃗ ) , f ( x ⃗ ) ) d ξ ⃗ k ( x ⃗ ) = ∬ c ( ξ ⃗ , x ⃗ ) s ( f ( ξ ⃗ ) , f ( x ⃗ ) ) \begin{aligned} h(\vec x) &= k^{-1}(\vec x) \iint f(\vec \xi) c(\vec \xi, \vec x) s(f(\vec \xi), f(\vec x))\mathrm d\vec \xi \\ k(\vec x) &= \iint c(\vec \xi, \vec x) s(f(\vec \xi), f(\vec x))\\ \end{aligned} h(x )k(x )=k1(x )f(ξ )c(ξ ,x )s(f(ξ ),f(x ))dξ =c(ξ ,x )s(f(ξ ),f(x ))

双边高斯滤波

在这个抽象形式中, c , s c, s c,s这两个函数都是待定义的,文中给出了高斯形式的双边滤波

c ( ξ ⃗ , x ⃗ ) = exp ⁡ [ − 1 2 d ( ξ ⃗ , x ⃗ ) σ d ] , d ( ξ ⃗ , x ⃗ ) = ∥ ξ ⃗ − x ⃗ ∥ s ( ξ ⃗ , x ⃗ ) = exp ⁡ [ − 1 2 δ ( f ( ξ ⃗ ) , f ( x ⃗ ) ) σ r ] , δ ( f 1 , f 2 ) = ∣ f 1 − f 2 ∣ c(\vec \xi, \vec x)=\exp\left[-\frac{1}{2}\frac{d(\vec \xi, \vec x)}{\sigma_d} \right], d(\vec \xi, \vec x)=\Vert \vec \xi-\vec x\Vert\\ s(\vec \xi, \vec x)=\exp\left[-\frac{1}{2}\frac{\delta(f(\vec \xi), f(\vec x))}{\sigma_r} \right], \delta(f_1, f_2)=\vert f_1-f_2\vert c(ξ ,x )=exp[21σdd(ξ ,x )],d(ξ ,x )=ξ x s(ξ ,x )=exp[21σrδ(f(ξ ),f(x ))],δ(f1,f2)=f1f2

σ d , σ r \sigma_d, \sigma_r σd,σr取值不同时,其处理效果如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2142359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git常用指令整理【新手入门级】【by慕羽】

Git 是一个分布式版本控制系统,主要用于跟踪和管理源代码的更改。它允许多名开发者协作,同时提供了强大的功能来管理项目的历史记录和不同版本。本文主要记录和整理,个人理解的Git相关的一些指令和用法 文章目录 一、git安装 & 创建git仓…

蓝桥杯-STM32G431RBT6(串口)

前言 一、配置 二、使用步骤 1.串口发送 代码逻辑 效果展示 2.串口接收单个字符 代码逻辑 中断回调函数 3.串口接受字符串 代码逻辑 字符串函数 中断回调函数 声明 代码开源 前言 一、配置 二、使用步骤 1.串口发送 代码逻辑 sprintf(tx_buf,"jin ke\r\n&…

(学习总结17)C++继承

C继承 一、继承的概念与定义继承的概念继承定义1. 定义格式2. 继承基类成员访问方式的变化 继承类模板 二、基类和派生类间的转换三、继承中的作用域隐藏规则 四、派生类的默认成员函数4个常见默认成员函数实现一个不能被继承的类 五、继承与友元六、继承与静态成员七、多继承及…

DFS:二叉树中的深搜

✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一. 深搜的总结 二. 二叉树的深搜题目 2.1 计算布尔二叉树的值 2.2 求根节点到叶节点的数字之和 2.3 二叉树剪枝 2.4 验证二叉搜索树 2.5 二叉搜索树中第k小的节点 2.6 二叉树的…

【C++】——继承详解

目录 1、继承的概念与意义 2、继承的使用 2.1继承的定义及语法 2.2基类与派生类间的转换 2.3继承中的作用域 2.4派生类的默认成员函数 <1>构造函数 <2>拷贝构造函数 <3>赋值重载函数 <4析构函数 <5>总结 3、继承与友元 4、继承与静态变…

在VC++6.0中创建一个C++项目

1、下载并安装VC6.0 暂时不介绍下载安装&#xff0c;后续可能会补充 2、打开VC6.0 初始界面如下图&#xff1a; 3、创建一个空工程 文件-新建 在新建弹框中选择&#xff1a;工程-win32 console Application-填写工程名、选择保存路劲-确定 在新的弹框中&#xff0c;选择&…

BIT小学期-电话号码问题

Output 输出包括两个部分&#xff0c;第一个部分是错误的电话号码&#xff0c;对于这些号码应当按照输入的顺序以原始的形式输出。在输出错误电话号码前输出Error:&#xff0c;随后输出这些号码&#xff0c;如果没有错误的电话号码&#xff0c;则输出Not found. 第二部分是重…

[C++进阶]AVL树

前面我们说了二叉搜索树在极端条件下时间复杂度为O(n),本篇我们将介绍一种对二叉搜索树进行改进的树——AVL树 一、AVL 树的概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&#xff0c;查找效率低下。因此&#xff0c;两位…

6个Python小游戏项目源码【免费】

6个Python小游戏项目源码 源码下载地址&#xff1a; 6个Python小游戏项目源码 提取码: bfh3

深度学习Day-33:Semi-Supervised GAN理论与实战

&#x1f368; 本文为&#xff1a;[&#x1f517;365天深度学习训练营] 中的学习记录博客 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制] 一、 基础配置 语言环境&#xff1a;Python3.8编译器选择&#xff1a;Pycharm深度学习环境&#xff1a; torch1.12.1c…

cout无法正常显示中文

cout无法正常显示中文 虽然你使用了buf.length()来指定写入的字节数&#xff0c;但是在包含中文字符&#xff08;UTF-8编码下每个中文字符占用3个字节&#xff09;的情况下&#xff0c;直接使用length()可能不会正确反映实际的字节数&#xff0c;因为它给出的是字符数而非字节…

基于深度学习,通过病理切片直接预测HPV状态|文献速递·24-09-16

小罗碎碎念 有段时间没有写文献速递的推文了&#xff0c;搞得自己今天写还怪不适应的。 今天所有的推文&#xff0c;都是围绕一个系统的问题展开——既研究了HPV与EBV在头颈癌/鼻咽癌中的致病机制&#xff0c;也总结了如何结合病理组学直接由WSI预测HPV状态——没办法&#x…

变压器漏感对整流电路的影响

目录 1. 电压波形畸变 2. 输出电压波动 3. 电流纹波增加 4. 降低整流效率 5. 影响开关器件的性能 6. EMI&#xff08;电磁干扰&#xff09;增加 总结与应对措施 变压器漏感在整流电路中会产生一些影响&#xff0c;尤其在高频应用或电流变化较大的情况下&#xff0c;其影…

【GESP】C++一级练习BCQM3006,多行输出

多行输出练习题&#xff0c;使用cout或printf函数输出多行内容。 BCQM3006 题目要求 描述 在windows的控制台环境中所有的字符都是等宽的&#xff0c;默认情况下窗口中每行有 80 个字符&#xff0c;每个屏幕有 25 行&#xff0c;组成了一个字符矩阵。利用控制台的这个特点&a…

什么是 HTTP/3?下一代 Web 协议

毫无疑问&#xff0c;发展互联网底层的庞大协议基础设施是一项艰巨的任务。 HTTP 的下一个主要版本基于 QUIC 协议构建&#xff0c;并有望提供更好的性能和更高的安全性。 以下是 Web 应用程序开发人员需要了解的内容。 HTTP/3 的前景与风险 HTTP/3 致力于让互联网对每个人…

从登录到免登录:JSP与Servlet结合Cookie的基本实现

前言 JSP中应用Cookie解析&#xff1a; 用户登录成功后&#xff0c;将用户信息保存到Cookie中&#xff0c;在页面读取Cookie并显示&#xff0c;不需要再次登录可以直接进入页面 第一步&#xff1a;创建JavaWeb项目&#xff0c;配置pom.xml文件 创建maven项目&#xff0c;项目名…

背包问题 总结详解

就是感觉之前 dp 的 blog 太乱了整理一下。 0-1 背包 例题:P1048 朴素算法 思路 对于一个物品&#xff0c;我们可以选&#xff0c;也可以不选。 我们用表示第 i 件物品的重量&#xff0c;表示第 i 件物品的价值。 考虑表示前 i 件物品放入容量为j的背包中的最大价值。 如…

时间复杂度计算 递归(solve2 后续)

原帖 最近校内比较忙&#xff0c;更新缓慢&#xff0c;致歉。 这里函数每次都需要遍历 h h h 和 m m m 之间的数&#xff08;复杂度 O ( n ) O(n) O(n)&#xff09;&#xff0c;所以和 solve1 略有不同。仍然假设 T ⁡ ( n ) \operatorname{T}(n) T(n) 表示 m − h 1 n…

【C++二叉树】606.根据二叉树创建字符串

606. 根据二叉树创建字符串 - 力扣&#xff08;LeetCode&#xff09; 图文分析&#xff1a; 代码实现&#xff1a; 代码说明&#xff1a; 1、前序遍历方式&#xff1a;根-左子树-右子树。 2、题目要求将二叉树转换为字符串输出&#xff0c;所以定义了一个string对象str。 3…

MySQL —— 视图

概念 视图是一张虚拟的表&#xff0c;它是基于一个或多个基本表或其他视图的查询结果集。 视图本身不存储数据&#xff0c;而是通过执行查询来动态生成数据&#xff0c;用户可以像操作普通表一样使用视图来进行查询更新与管理等操作。 视图本身也不占用物理存储空间&#xf…