【3维视觉】网格的谱分解和应用(GFT图傅里叶变换)

news2024/11/16 13:05:22

网格的谱分解即网格的频率分解,我们学过信号的傅里叶变换,将信号从空域变换到频域。二维图像由离散傅里叶变换DFT(Discrete Fourier Transform)。在图信号领域,也有图的傅里叶变换GFT(Graph Fourier Transform),网格可以看作是图,因此网格的谱分解,就是进行图傅里叶变换。
在这里插入图片描述

网格谱分解

GFT图傅里叶变换

  • 先构建图的拉普拉斯矩阵,拉普拉斯矩阵=度矩阵-邻接矩阵

  • 计算拉普拉斯矩阵的特征值和特征向量: 对构建的拉普拉斯矩阵进行特征值分解,得到其特征值和对应的特征向量。特征值表示了网格的频谱信息,而特征向量则表示了网格不同的频谱分量。

  • 然后将图的拉普拉斯矩阵可以表示程基向量的线性组合,其系数就代表了不同频率分量的强度。

  • 在特征值中,较大的特征值对应的频谱分量通常包含了网格中的高频信息,而较小的特征值对应的频谱分量则表示了网格中的低频信息。因此,可以通过特征值的大小来判定高频信息。

图的拉普拉斯矩阵

拉普拉斯矩阵=度矩阵-邻接矩阵

为什么这个矩阵叫拉普拉斯矩阵呢?依我有限的理解,可以联系网格顶点的拉普拉斯坐标。
假设图有n个顶点,则图的拉普拉斯矩阵 L n × n L^{n\times n} Ln×n,将图的顶点坐标也表示为矩阵为 V n × 3 V^{n\times 3} Vn×3, 将拉普拉斯矩阵左乘顶点矩阵,即 L × V L \times V L×V,得到的是图的顶点的拉普拉斯坐标矩阵 L v n × 3 Lv^{n\times 3} Lvn×3

举个栗子

拉普拉斯矩阵=度矩阵-邻接矩阵

考虑一个简单的二维网格,由4个顶点和4条边组成,如下所示:

   1 -- 2
   |    |
   3 -- 4

我们可以使用邻接矩阵和度矩阵来构建拉普拉斯矩阵。

  • 邻接矩阵:邻接矩阵表示了顶点之间的连接关系。在这个例子中,邻接矩阵为:
   [[0, 1, 0, 1],
    [1, 0, 1, 0],
    [0, 1, 0, 1],
    [1, 0, 1, 0]]
  • 度矩阵:度矩阵表示了每个顶点的度数(即与之相连的边的数量)。在这个例子中,度矩阵为:
   [[2, 0, 0, 0],
    [0, 2, 0, 0],
    [0, 0, 2, 0],
    [0, 0, 0, 2]]
  • 拉普拉斯矩阵:通过将度矩阵减去邻接矩阵,我们可以得到拉普拉斯矩阵。在这个例子中,拉普拉斯矩阵为:
   [[2, -1, 0, -1],
    [-1, 2, -1, 0],
    [0, -1, 2, -1],
    [-1, 0, -1, 2]]

这个拉普拉斯矩阵描述了网格中顶点之间的连接关系和边界条件。通过对该矩阵进行特征值分解,可以进行网格的谱分解和频谱分析。
对于给定的拉普拉斯矩阵:

L = [ 2 − 1 0 − 1 − 1 2 − 1 0 0 − 1 2 − 1 − 1 0 − 1 2 ] L = \begin{bmatrix} 2 & -1 & 0 & -1 \\ -1 & 2 & -1 & 0 \\ 0 & -1 & 2 & -1 \\ -1 & 0 & -1 & 2 \\ \end{bmatrix} L= 2101121001211012

  • 进行特征值分解

使用适当的数值计算库或线性代数软件进行特征值分解。这可以通过调用相应的函数或方法来完成。

特征值分解的结果可以表示为:
L = Q Λ Q − 1 L = Q\Lambda Q^{-1} L=QΛQ1

其中, Q Q Q 是特征向量矩阵, Λ \Lambda Λ 是特征值对角矩阵。

得到结果如下:

特征值(Eigenvalues):
λ 1 = 0 \lambda_1 = 0 λ1=0 λ 2 = 1 \lambda_2 = 1 λ2=1 λ 3 = 3 \lambda_3 = 3 λ3=3 λ 4 = 4 \lambda_4 = 4 λ4=4

特征向量(Eigenvectors):
v 1 = [ 1 1 1 1 ] v_1 = \begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \end{bmatrix} v1= 1111
v 2 = [ − 1 1 − 1 1 ] v_2 = \begin{bmatrix} -1 \\ 1 \\ -1 \\ 1 \end{bmatrix} v2= 1111
v 3 = [ 1 − 1 − 1 1 ] v_3 = \begin{bmatrix} 1 \\ -1 \\ -1 \\ 1 \end{bmatrix} v3= 1111
v 4 = [ − 1 − 1 1 1 ] v_4 = \begin{bmatrix} -1 \\ -1 \\ 1 \\ 1 \end{bmatrix} v4= 1111

请注意,特征值的顺序是按照从小到大排列的。特征向量对应于特征值的顺序,即 v 1 v_1 v1 对应于 λ 1 \lambda_1 λ1 v 2 v_2 v2 对应于 λ 2 \lambda_2 λ2,依此类推。

特征值分解提供了关于矩阵的结构和性质的重要信息。在这个例子中,特征值分解揭示了该网格的特征模式和频率,其中特征值 0 对应于一个常数模式,特征值 1 对应于一个线性模式,特征值 3 和 4 对应于更高频率的模式。特征向量表示了每个特征模式的空间形状。

应用

网格压缩

Spectral Compression of Mesh Geometry

文章概述:
这篇文章主要介绍了一种称为"网格几何谱压缩"的技术,用于对网格几何数据进行压缩。该方法利用了网格的谱性质,并通过保留关键频率分量来实现高效的压缩。作者通过实验证明了该方法在减小网格数据尺寸的同时,能够保持较高的几何质量和视觉效果。

技术要点:

  1. 网格谱性质的利用: 该方法利用了网格的谱性质,即网格的特征向量和特征值之间的关系。通过对网格进行谱分解,可以得到一组特征向量和对应的特征值,这些特征向量表示了网格的几何形状。基于这些特征向量,可以对网格进行重建或者压缩。

  2. 关键频率分量的保留: 为了实现高效的压缩,该方法选择保留网格特征向量中的关键频率分量,即对应于较大特征值的特征向量。这些关键频率分量包含了网格的主要几何信息,而忽略较小特征值对应的特征向量可以有效减小数据尺寸。

  3. 压缩算法: 文章提出了一种基于关键频率分量的压缩算法。该算法首先对网格进行谱分解,然后根据预设的压缩比例选择要保留的特征向量数量。通过仅保留关键频率分量并丢弃其他分量,可以大幅减小数据尺寸。最后,利用保留的特征向量重建原始网格。

相比以前方法的改进:
相较于以前的方法,这篇文章提出的网格几何谱压缩方法具有以下改进:

  1. 高效性: 该方法利用了网格的谱性质,通过保留关键频率分量实现了高效的压缩。相比于传统的方法,该方法可以在减小数据尺寸的同时保持较高的几何质量和视觉效果。
  2. 几何质量的保持: 该方法在压缩过程中,选择保留关键频率分量,这些分量包含了网格的主要几何信息。因此,通过该方法压缩后的网格能够保持较高的几何质量,避免了传统压缩方法可能引入的形变或失真。

文章的不足:
尽管这篇文章提出的网格几何谱压缩方法具有一定的优势,但也存在一些不足之处:

  1. 压缩比例的限制: 该方法在选择要保留的特征向量数量时,依赖于预设的压缩比例。这可能导致在一些情况下,无法达到较高的压缩比例要求。
  2. 计算复杂度: 文章未详细探讨该方法的计算复杂度。由于谱分解等操作可能较为耗时,该方法在大规模网格数据上的计算效率仍然需要进一步研究和改进。

综上所述,这篇文章介绍了一种利用网格谱性质进行几何压缩的方法。相比以前的方法,该方法具有高效性和几何质量保持的优势。然而,仍然存在一些不足,包括压缩比例的限制和计算复杂度方面的待改进之处。

High-Pass Quantization for Mesh Encoding

文章概述:
这篇文章介绍了一种称为"High-Pass Quantization for Mesh Encoding"的方法,用于对网格进行编码和压缩。该方法利用高通滤波器和量化技术,通过保留网格的高频细节信息来实现高效的压缩。作者通过实验证明了该方法在减小网格数据尺寸的同时,能够保持较高的几何质量和视觉效果。

技术要点:

  1. 高通滤波器的应用: 该方法使用高通滤波器对网格进行处理,以保留高频细节信息。高通滤波器可以滤除低频成分,使得编码过程更加集中于网格的细节部分,从而实现更高效的压缩。

  2. 量化技术: 文章采用了一种基于量化的编码策略。通过将高频细节信息进行量化,将连续的浮点数值转换为离散的整数值,从而减小数据的表示和存储开销。同时,为了保持编码的质量,文章提出了一种自适应的量化策略,根据网格的局部特征调整量化的精度。

  3. 编码算法: 文章提出了一种基于高通滤波和量化的编码算法。首先,通过高通滤波器处理网格,提取高频细节信息。然后,对提取的高频细节信息进行自适应量化,得到离散的整数值。最后,将量化后的数据进行编码和压缩,以减小存储空间。

相比以前方法的改进:
相较于以前的方法,这篇文章提出的High-Pass Quantization for Mesh Encoding方法具有以下改进:

  1. 高频细节保留: 传统的网格编码方法通常只关注低频成分,而该方法通过使用高通滤波器,专注于保留高频细节信息。这样可以更好地捕捉网格的细节特征,提高几何质量和视觉效果。

  2. 自适应量化: 文章提出了一种自适应的量化策略,根据网格的局部特征调整量化的精度。这种自适应性可以更好地平衡压缩比和几何质量,提供更好的编码效果。

文章的不足:
尽管该方法在网格编码和压缩方面有一定的优势,但仍存在一些不足之处:

  1. 编码复杂度: 文章未详细探讨该方法的编码复杂度。由于高通滤波和自适应量化等操作的影响,该方法的编码过程可能较为复杂,需要进一步研究和改进。

  2. 压缩率的限制: 该方法主要关注高频细节的保留,而对于低频成分的处理相对较少。这可能导致在一些情况下,无法达到较高的压缩比例要求。

综上所述,这篇文章介绍了一种利用高通滤波器和量化技术进行网格编码和压缩的方法。相比以前的方法,该方法通过保留高频细节信息和自适应量化策略,提高了几何质量和视觉效果。然而,仍然存在一些不足,包括编码复杂度和压缩率的限制,需要进一步研究和改进。

网格平滑

参考文章

图的拉普拉斯矩阵介绍:理解图的拉普拉斯矩阵 - 知乎 (zhihu.com)

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

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

相关文章

数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成

数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成 目录 数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成; 2.马尔科夫链蒙特卡洛方…

深入探索快速排序:高效分而治之的算法

1. 引言:快速排序的背景与重要性 快速排序(Quick Sort)是一种高效的排序算法,以其出色的性能和普适性而受到广泛关注。它利用了分而治之的思想,通过将数组分割成较小的子数组,并将这些子数组分别排序来实现…

苹果手机怎么删除软件?教你1分钟搞定!

手机内存快不够用了,实在是不想删除手机里的重要数据,所以想卸载一些长时间不用的软件,有什么快速好用的方法能够安利一下吗? 买了新手机,第一件事当然是在手机上下载各种各样的软件供自己使用和娱乐。但当过了一段时间…

Clock Domain Crossing(CDC)跨时钟域

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 ​跨时钟域(CDC)指的是信号由一个时钟域进入另一个时钟域,以下图为例。 ● F1属于clk1时钟域 ● Q1属于clk1时钟域的信号 ● F2属于clk2时钟域 ● Q2属于clk2时钟域的信号 ● Q1对于F2来说是…

Unity打包Windows程序,概率性出现无法全屏或分辨率不匹配

排除代码和Resolution and Presentation面板设置问题 如果程序还是不能按照预期的分辨率运行,应该是系统注册表记录了对应的设置。 解决方案: 打开注册表,使用快捷键“Win” "R"组合快捷键。在打开后面键入命令:Rege…

6G太赫兹波频段

6G目前处于非常早期的研究阶段。国际电信联盟所期待的“网络2030”愿景正在逐步实现。虽然该行业距离进入6G标准开发进程还有几年的时间,但亚太赫兹(sub-THz)技术已经成为研究的重点。 6G一个关键目标和积极研究领域是实现 100 Gbps 至 1 Tb…

枚举的使用优化if-else

文章目录 目录 文章目录 前言 一、用来替代大量请求路径的判断 二、使用枚举来优化if-else结构 总结 前言 枚举是一种常用于替代复杂的if-else结构的优化工具。通过使用枚举,可以将多个条件判断语句转化为简单的case语句,提高代码的可读性和可维护性 一…

问道管理股票分析:股票开户后不交易会扣费吗?怎么注销?

相信日子中有许多人在办理一些如银行账户开户以及其他买卖业务时,会被建议注册一个证券账户,而相当多的人在注册完后就没有再搭理过这个账户了。那么,开户后不买卖会被扣费吗?觉得藏着没用的,该怎样去刊出?…

Linux下的系统编程——vim/gcc(二)

前言: 在Linux操作系统之中有很多使用的工具,我们可以用vim来进行程序的编写,然后用gcc来生成可执行文件,最终运行程序。下面就让我们一起了解一下vim和gcc吧 目录 一、vim编辑 1.vim的三种工作模式 2.基本操作之跳转字符 &a…

每日两题 111二叉树的最小深度 112路径总和(递归)

111 题目 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:2示例 2&#x…

创造势能,把握节奏

善于打仗的人,创造高势能,行动节奏恰当 【安志强趣讲《孙子兵法》第18讲】 【原文】 激水之疾,至于漂石者,势也;鸷鸟之疾,至于毁折者,节也。 【注释】 激,阻截水流 节,时…

ITIL4—战略与指导

战略与指导 成功的服务提供,需要朝着商定的目标采取协调一致的行动。本节将探讨服务供应商战略的创建和管理,其目的是首先对战略的本质、范围,以及战略与指导的关系建立基本的理解,然后为与该战略一致的指导活动提供指导。 本节…

最新APP下载官网源码带app预览,

适合做软件,游戏,产品,企业工作室官网,有能力的可自行二开。 源码:星域社区官网源码.zip - 蓝奏云

Delphi 开发手持机(android)打印机通用开发流程(举一反三)

目录 一、场景说明 二、厂家应提供的SDK文件 三、操作步骤: 1. 导出Delphi需要且能使用的接口文件: 2. 创建FMX Delphi项目,将上一步生成的接口文件(V510.Interfaces.pas)引入: 3. 将jarsdk.jar 包加入到 libs中…

Nuxt3环境变量配置

Nuxt3 正式发布还不到半年,在投入生产环境使用后,遇到了不少问题,很难找到合适的解决方案,其中环境变量配置就是其中一个,之前一直未能解决,最近要上持续集成,无法绕过这个问题,所以…

Connect-The-Dots靶场

靶场下载 https://www.vulnhub.com/entry/connect-the-dots-1,384/ 一、信息收集 探测存活主机 netdiscover -r 192.168.16.161/24nmap -sP 192.168.16.161/24端口操作系统扫描 nmap -sV -sC -A -p 1-65535 192.168.16.159扫描发现开放端口有 21 ftp 80 http 20…

labelImg的安装及其使用注意事项

一、安装labelImg 在低版本python的安装方法 1. 新建及激活进去虚拟环境 conda create --namelabelImg python3.9 conda activate labelImg注释:新建的虚拟环境的python版本不能超过3.9版本 2.安装相应的包 pip install pyqt5 pip install labelImg3.使用label…

Friend.tech爆火!Web3社交领域还有哪些项目值得关注?

要说Web3圈子里的“当红炸子鸡”,那必然是Friend.tech无疑了。 2023年8月10日,链上社交应用Friend.tech正式上线,短时间内便在Web3圈子里掀起了惊波澜,上线短短24小时,交易量便已超过810万美元。 FFriend.tech是一款建…

数据库——Redis 单线程模型详解

文章目录 Redis 基于 Reactor 模式来设计开发了自己的一套高效的事件处理模型 (Netty 的线程模型也基于 Reactor 模式,Reactor 模式不愧是高性能 IO 的基石),这套事件处理模型对应的是 Redis 中的文件事件处理器(file …

python提取文件夹指定文件以及删除指定文件

在做项目的过程中,往往需要提取文件夹中的指定文件至其他文件夹,或者要删除文件夹中的指定文件,如下图所示,当我需要将图片按照命名的尾数进行分类提取或者删除,依靠人工筛选是很麻烦的。 下面提供一个代码进行分类 i…