【经典文献】双边滤波的卷积化

news2024/9/19 17:29:57

文章目录

    • 2009 IJCV
    • 双边滤波公式
    • 卷积形式

2009 IJCV

2009年,Paris S等人在IJCV上发表的工作,将双边滤波表示为高维空间中的线性卷积和非线性操作,并通过在空间和强度域下采样来加速计算,从而在保证视觉质量的同时,显著提高了计算速度。

  • Paris S, Durand F. A fast approximation of the bilateral filter using a signal processing approach[J]. International journal of computer vision, 2009, 81: 24-52.

双边滤波公式

双边滤波可以写成如下形式

I p b = 1 W p b ∑ q ∈ S G σ s ( ∥ p − q ∥ ) G σ r ( ∣ I p − I q ∣ ) I q W p b = ∑ q ∈ S G σ s ( ∥ p − q ∥ ) G σ r ( ∣ I p − I q ∣ ) . \begin{aligned} I^b_p&=\frac{1}{W^b_p}\sum_{q\in S}G_{\sigma_s}(\Vert p-q\Vert)G_{\sigma_r}(\vert I_p-I_q\vert)I_q\\ W^b_p&= \sum_{q\in S}G_{\sigma_s}(\Vert p-q\Vert)G_{\sigma_r}(\vert I_p-I_q\vert). \end{aligned} IpbWpb=Wpb1qSGσs(pq)Gσr(IpIq)Iq=qSGσs(pq)Gσr(IpIq).

其中, p , q p,q p,q为坐标向量, p p p是当前被滤波的点, q q q p p p的邻域 S S S内的点。 G G G是高斯函数, σ s , σ r \sigma_s, \sigma_r σs,σr分别为空间滤波和强度滤波的标记。 I I I是输入图像, I b I^b Ib是滤波后输出的图像, W p b W^b_p Wpb是归一化强度。

上面这两个式子,其求和号中的内容高度相似,可以糅合成如下矩阵的形式

[ W p b I q b W p b ] = ∑ q ∈ S G σ s ( ∥ p − q ∥ ) G σ r ( ∣ I p − I q ∣ ) [ I q 1 ] \begin{bmatrix} W^b_pI_q^b\\W^b_p \end{bmatrix}=\sum_{q\in S}G_{\sigma_s}(\Vert p-q\Vert)G_{\sigma_r}(\vert I_p-I_q\vert)\begin{bmatrix} I_q\\1 \end{bmatrix} [WpbIqbWpb]=qSGσs(pq)Gσr(IpIq)[Iq1]

W = 1 W=1 W=1,则上式可写成迭代形式

[ W p b I q b W p b ] = ∑ q ∈ S G σ s ( ∥ p − q ∥ ) G σ r ( ∣ I p − I q ∣ ) [ W q I q W q ] \begin{bmatrix} W^b_pI_q^b\\W^b_p \end{bmatrix}=\sum_{q\in S}G_{\sigma_s}(\Vert p-q\Vert)G_{\sigma_r}(\vert I_p-I_q\vert)\begin{bmatrix} W_qI_q\\ W_q \end{bmatrix} [WpbIqbWpb]=qSGσs(pq)Gσr(IpIq)[WqIqWq]

卷积形式

接下来,引入一个新的维度 z z z,并且定义点 ( x , y , z ) (x,y,z) (x,y,z)处的强度为 I I I,定义冲击函数 δ ( z ) \delta(z) δ(z)函数,其 z = 0 z=0 z=0时取值为 1 1 1,否则取值为使 0 0 0。上式可重新写为

[ W p b I q b W p b ] = ∑ q ∈ S ∑ z ∈ R G σ s ( ∥ p − q ∥ ) G σ r ( ∣ I p − z ∣ ) δ ( z − I q ) [ W q I q W q ] \begin{bmatrix} W^b_pI_q^b\\W^b_p \end{bmatrix}=\sum_{q\in S}\sum_{z\in R}G_{\sigma_s}(\Vert p-q\Vert) G_{\sigma_r}(\vert I_p-z \vert)\delta(z-I_q)\begin{bmatrix} W_qI_q\\ W_q \end{bmatrix} [WpbIqbWpb]=qSzRGσs(pq)Gσr(Ipz)δ(zIq)[WqIqWq]

其中 R R R z z z的定义域。原文中 z z z轴的符号是 ζ \zeta ζ,考虑书写阅读方便改为了 z z z,其含义为强度值。 δ ( z − I q ) \delta(z-I_q) δ(zIq)的含义是, z z z轴中,只有等于当前像素点强度的分量为1,否则均为0。例如,如果处理 256 256 256位的灰度图像,当前像素的灰度值是 25 25 25,那么 z z z轴就有 256 256 256个分量,其第 25 25 25个分量为 1 1 1,其他均为 0 0 0

定义下列三个函数

g σ s , σ r ( q , z ) = G σ s ( ∥ q ∥ ) G σ r ( ∣ z ∣ ) i ( q , z ) = I q w ( q , z ) = δ ( z − I q ) W q since ⁡ W q = 1 \begin{aligned} g_{\sigma_s,\sigma_r}(q, z)&= G_{\sigma_s}(\Vert q\Vert)G_{\sigma_r}(\vert z\vert) \\ i(q, z)&= I_q\\ w(q, z)&=\delta(z-I_q)W_q \operatorname{since} W_q=1 \end{aligned} gσs,σr(q,z)i(q,z)w(q,z)=Gσs(q)Gσr(z)=Iq=δ(zIq)WqsinceWq=1

其中 q q q是图像中的某个像素坐标,展开形式为 ( x , y ) (x,y) (x,y),应该是一个向量。在上式中,表示某个像素点。原文在定义函数时,使用了映射的形式,为方便阅读,这里改为函数形式。

这三个函数可以化用到双边滤波中,如下所示

[ W p b I q b W p b ] = ∑ q , z ∈ S × R g σ s , σ r ( p − q , I p − z ) [ w ( q , z ) i ( q , z ) w ( q , z ) ] \begin{bmatrix} W^b_pI_q^b\\W^b_p \end{bmatrix}=\sum_{q,z\in S\times R}g_{\sigma_s,\sigma_r}(p-q, I_p-z)\begin{bmatrix} w(q,z)i(q,z)\\w(q,z) \end{bmatrix} [WpbIqbWpb]=q,zS×Rgσs,σr(pq,Ipz)[w(q,z)i(q,z)w(q,z)]

其右侧即为点 ( p , I p ) (p, I_p) (p,Ip) g σ s , σ r g_{\sigma_s,\sigma_r} gσs,σr和二维函数 ( w i , w ) (wi,w) (wi,w)的卷积

[ g σ s , σ r ⊗ ( w i w ) ] ( p , I p ) \begin{bmatrix} g_{\sigma_s,\sigma_r}\otimes\begin{pmatrix} wi\\ w \end{pmatrix} \end{bmatrix}(p, I_p) [gσs,σr(wiw)](p,Ip)

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

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

相关文章

最新简洁大方的自动发卡网站源码/鲸发卡v11.61系统源码/修复版

源码简介: 最新简洁大方的自动发卡网站源码,它就是鲸发卡v11.61系统源码,它是修复版。 说到鲸发卡系统,鲸发卡系统在发卡圈很多人都知道的,它是市面最好发卡系统之一,操作起来简单得很,界面也…

【数据结构】排序算法---快速排序

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 递归版本代码实现5.1 hoare版本5.2 挖坑法5.3 lomuto前后指针 6. 优化7. 非递归版本代码实现结语 1. 定义 快速排序是由东尼霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要 O ( n l o g n ) Ο(nlogn) …

在 Windows 上恢复已删除的 PDF 文件的最佳方法

如果您不小心删除了 PDF 文件或由于系统突然崩溃而无法再找到它们,本指南介绍了恢复已删除文件的最佳方法。 帖子中列出的方法简单、有效且可行。我们在列出它们之前对其进行了测试。 什么是 PDF,Adobe 将未保存的 PDF 存储在哪里? 自从 Ad…

数据清洗-缺失值填充-K-NN算法(K-Nearest Neighbors, K-NN算法)

目录 一、安装所需的python包二、采用K-NN算法进行缺失值填充2.1可直接运行代码2.2以某个缺失值数据进行实战2.2.1代码运行过程截屏:2.2.2填充后的数据截屏: 三、K 近邻算法 (K-Nearest Neighbors, KNN) 介绍3.1 K 近邻算法定义3.2 K 近邻算法的基本思想…

Linux 文件与目录操作命令详解

文章目录 前言创建文件1. touch2. vim 文件内容显示3. cat4. more5. less6. head7. tail 文件(目录)复制、删除和移动8. cp9. rm10. mv 压缩文件与解压缩11. gzip12. zip 和 unzip 创建目录13. mkdir 删除目录14. rmdir 改变工作目录15. cd16. pwd 显示目…

六、二分搜索-算法总结

文章目录 六、二分搜索6.1 简介6.2 典型实例 -- 二分查找6.2 模板6.3 常见题目6.3.1 搜索插入位置6.3.2 搜索二维矩阵6.3.3 寻找旋转排序中数组中的最小值6.3.4 寻找旋转排序数组中的最小值 II6.3.5 搜索旋转排序数组6.3.6 搜索旋转排序数组 II 总结 六、二分搜索 6.1 简介 给…

Java或者前端 实现中文排序(调API的Demo)

目录 前言1. 前端2. Java 前言 前端 Vue 中的中文排序通常使用 JavaScript 提供的 localeCompare 方法来比较中文字符串 Java 后端可以使用 Collator 类来实现中文排序 1. 前端 在 Vue 中&#xff0c;使用 localeCompare 来实现中文字符串的排序&#xff1a; <template&…

Skyeye 云智能制造 v3.14.5 发布,ERP 商城

Skyeye 云智能制造&#xff0c;采用 Springboot winUI 的低代码平台、移动端采用 UNI-APP。包含 30 多个应用模块、50 多种电子流程&#xff0c;CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公告、问卷、报表…

SAM 2: Segment Anything in Images and Videos

SAM2: 在图像和视频中分割任何内容 作者 Nikhila Ravi, Valentin Gabeur, Yuan-Ting Hu, Ronghang Hu 等 (Meta FAIR) 论文&#xff1a;SAM2: Segment Anything in Images and Videos项目代码&#xff1a;GitHub Repository互动演示&#xff1a;Demo 摘要 SAM2 是一个用于处…

基于51单片机的锅炉温度控制系统PID调节proteus仿真

地址&#xff1a; https://pan.baidu.com/s/17oMgAnUBUKKEVnv5hNRQmQ 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C52/AT89C51是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMicroelectro…

招聘数据分析师,HR会考察候选人哪些方面?

数据分析是必须具备深厚的专业技能底蕴&#xff0c;这是最基本的要求&#xff0c;其中包括对数据分析工具和编程语言的精通&#xff0c;以及对数据库管理的实验操作。 在数据分析师的招聘过程中&#xff0c;必须要注重对方掌握的知识&#xff0c;比如数据挖掘数据可视化等先进…

Qt构建JSON及解析JSON

目录 一.JSON简介 JSON对象 JSON数组 二.Qt中JSON介绍 QJsonvalue Qt中JSON对象 Qt中JSON数组 QJsonDocument 三.Qt构建JSON数组 四.解析JSON数组 一.JSON简介 一般来讲C类和对象在java中是无法直接直接使用的&#xff0c;因为压根就不是一个规则。但是他们在内存中…

详解:Tensorflow、Pytorch、Keras(搭建自己的深度学习网络)

这是一个专门对Tensorflow、Pytorch、Keras三个主流DL框架的一个详解和对比分析 一、何为深度学习框架&#xff1f; 你可以理解为一个工具帮你构建一个深度学习网络&#xff0c;调用里面的各种方法就能自行构建任意层&#xff0c;diy你想要的DNN&#xff0c;而且任意指定学习…

揭秘!当业务方需求模糊,产品经理如何施展‘化雾为金’的神奇策略!

引言 在产品管理的实践中&#xff0c;产品经理经常会遇到业务方无法清晰表达需求的情况。这可能是由于业务方对问题的理解不够深入&#xff0c;或者缺乏将业务需求转化为产品需求的经验。作为资深产品经理&#xff0c;我们需要采取一系列策略来应对这一挑战&#xff0c;确保产…

Solid Converter PDF9.1安装教程

软件介绍 Solid Converter PDF是一套专门将PDF文件转换成word的软件&#xff0c;除了转换成word文件外&#xff0c;还可以转换成RTF以及Word XML文件。除此之外&#xff0c;它还有一个图片撷取功能&#xff0c;可以让我们]将PDF档里的图片撷取出来&#xff0c;以及将PDF档里的…

word文档的读入(8)

如何读取答题卡中的选择题答案&#xff0c;并把所有的信息导入到Excel表格中&#xff5e; 在初始化了字典中的字段并获取了标准答案和学生答案后&#xff0c;现在只需使用if语句将学生答案studentAnswerOne和标准答案value进行比较。选择题一道题2分&#xff0c;答案正确时&…

C++11 右值引用完美转发

前言 上一期介绍了C11的基础新特性&#xff0c;这一期开始我们继续来介绍C11的新特性&#xff01; 目录 前言 一、右值引用和移动语义 1.1左值和左值引用 1.2右值和右值引用 1.3左值引用vs右值引用 1.4右值引用的使用场景和意义 左值引用的使用场景 左值引用的缺陷 …

应用案例|开源 PolarDB-X 在互联网安全场景的应用实践

背景介绍 中盾数科集团始创于2012年&#xff0c;是由网络安全服务而发展起来的科技型、多元化的企业集团。旗下包括网络安全服务、信创一体化服务、箱式液冷、区块链、位置服务、视觉服务等六大板块&#xff0c;业务覆盖湖南、甘肃、贵州等多个省份。 业务挑战 中盾集团基于A…

LabVIEW提高开发效率技巧----模块化设计与代码复用

模块化设计是现代软件开发中不可或缺的理念&#xff0c;在LabVIEW开发中尤为重要。通过将系统功能划分为独立的、可复用的模块&#xff0c;开发者可以显著提升代码的可读性、维护性以及效率。下面将介绍模块化设计的核心概念、如何利用子VI实现代码复用、以及使用模板&#xff…

claude,gpt,通义千问

起因是通义千问对这张图的解释有严重错误&#xff0c;因此想着让claude和gpt回答一下&#xff0c;记录一下。 claude 这张图表显示了中国多个城市的房地产价格指数数据。让我为您解读一下主要信息&#xff1a; 指标解释&#xff1a; "环比": 与上月相比的价格变化&…