news 2026/9/3 10:59:46

傅里叶方法解开张量断层扫描:可见与不可见分量的频域重建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
傅里叶方法解开张量断层扫描:可见与不可见分量的频域重建

这次我们来看国际基础科学大会(ICBS)上的一个报告:A Fourier method in Tensor Tomography with Applications,报告人是 David Omogbhe。先别被 Tensor Tomography 这个词吓退。它要回答的问题其实很直接:普通 CT 重建的是空间中标量分布,例如 X 射线衰减系数、密度、吸收率;但如果研究对象不是“一个数”,而是带方向的物理量,比如流体速度、应力张量、晶体内部应变、各向异性介质参数,我们还能不能像 CT 那样,靠“沿直线做积分测量”再反推全场?

答案是:能,但数学上要绕一大圈。常规的滤波反投影(FBP)是标量场 Radon 变换的逆,把它直接搬到张量场上是行不通的。因为张量场本身带有方向性,一条直线上的积分会把张量的多个分量化成一个标量输出,丢失的信息比你想象中多。David Omogbhe 这个报告的核心,就是用频域方法重新刻画张量断层扫描中的积分变换,把不可见部分、可见部分、唯一重建条件这些老问题放到傅里叶框架下重新处理。

这篇文章按“问题起源 → 数学模型 → 频域方法原理 → 数值实现思路 → 应用场景 → 复现建议”的顺序来拆解。它不是一份大会逐字笔记,而是给包含 CT 重建、多普勒层析、光弹性测量、地震各向异性成像等方向的算法研究者写的方法地图。如果你正在研究张量场反演或者相关反问题,这篇文章可以提供一条比较完整的理解路径。

1. 报告主题速览:这个报告到底在做什么

在进入公式之前,先给一个速览表。写这篇博客时无法直接引用报告 PPT 的每一页细节,下面内容是根据报告主题、积分几何和张量层析领域公认的数学框架整理出来的。

维度内容
报告主题A Fourier method in Tensor Tomography with Applications
报告人David Omogbhe
所属会议国际基础科学大会(ICBS)
研究领域积分几何、张量断层扫描、Fourier 分析、反问题
核心研究对象对称张量场的纵向射线变换
方法关键词Fourier 切片定理、可见分量与不可见分量、频域分解、重建公式
目标问题由直线积分数据恢复空间中的矢量场或张量场
典型应用多普勒层析、光弹性断层、应力场重建、地震各向异性成像
数学门槛需要 Fourier 分析、Radon 变换、张量场分解基础
是否依赖 GPU不需要,纯理论方法;数值实验使用常规科学计算环境即可

如果你只是想在工程上调用某个“张量 CT 工具箱”,这个报告不是那种内容。它的价值在于解释“为什么这样重建是合理的”“哪种分量不可能恢复”“有没有比逐点离散化更优雅的求逆办法”。这类结果最终可以指导你设计更稳的离散重建算法。

2. 从标量 CT 到张量层析:为什么常规重建思路会失效

经典二维 CT 中,未知量是一个标量函数 f(x)。设 x 是平面上的点,θ∈S¹ 是探测方向,一条沿方向 θ、到原点距离为 s 的直线可以写成 L(θ,s) = {x: x·θ = s}。测量得到的投影是:

p_f(θ,s) = ∫_{x·θ=s} f(x) dl(x)

这就是 Radon 变换。一组不同角度的投影,配合中心切片定理,可以在频域拼出 f 的完整频谱,然后执行逆 Fourier 变换恢复 f。从物理上讲,每个点的信息被多条不同方向的直线积分覆盖,角度方向的遍历足以补偿单条线积分造成的维度坍缩。

问题在于,当未知量从标量变成矢量场或者张量场时,线积分会变得更加粗暴。实际测量中,探测波并不直接感知矢量场的所有分量。例如在多普勒层析中,待测对象是运动介质的速度场 v(x),而探测得到的是速度沿视线方向的投影,也就是 v(x)·θ 的线积分。如果测量几何只覆盖有限的观测角,速度场中“垂直于观测几何”的分量就很难被感知。数学上看到的现象是:投影算子存在非平凡核,无法仅靠一组纵向分量恢复完整矢量场。

再看更复杂的二阶张量场。在光弹性应力测量和某些地震学模型中,物质的性质不是标量,也不是矢量,而是一个对称张量场 σ(x)。射线穿过介质时,测量量和射线方向的二次型有关。一阶近似的测量结果可以写成:

g(θ,s) = ∫_{x·θ=s} θᵀ σ(x) θ dl(x)

注意积分里面已经变成了一个标量:张量 σ 在方向 θ 上的“纵向收缩”。这意味着我们用来恢复全场 σ 的数据,是从每个点不同方向的二次型采样得到的。要想反演出整个对称张量场,就需要多角度的射线覆盖,并且需要研究到底哪一个“张量分量组合”能从这些数据中恢复出来。

标量 CT 之所以简单,是因为每个点的未知量只有一个自由度。对称张量场的未知量在二维是 3 个独立分量,在三维是 6 个独立分量,而单条射线只输出了一个标量。因此,这类问题本质上是一个高度欠定的积分几何反问题。张量断层扫描的难点并不是“计算量多大”,而是“哪些东西能恢复、哪些东西本质上不可见”。

3. 关键建模:纵向变换与张量 Radon 变换

张量断层扫描中,最常用的变换是纵向射线变换(longitudinal ray transform)。为了把公式写清楚,下面用二维二阶对称张量场来展开。

设 σ(x) 是一个 2×2 对称矩阵值函数:

σ(x) = [[σ₁₁(x), σ₁₂(x)], [σ₁₂(x), σ₂₂(x)]]

对方向向量 θ = (cos φ, sin φ),其纵向投影是:

Iσ(θ, s) = ∫_{x·θ=s} θᵀ σ(x) θ dl(x) = ∫_{x·θ=s} (σ₁₁ cos²φ + 2σ₁₂ sinφ cosφ + σ₂₂ sin²φ) dl(x)

可以看出,Iσ(θ,s) 并不是直接记录某个张量分量,而是把张量场的三个独立分量按角度系数组合起来,再做线积分。θ 变化时,组合系数也在变化。因此,如果获得了足够多的方向 θ 的纵向投影,理论上可以尝试恢复 σ。

问题在于:纵向射线变换的核空间不是空的。存在一类非零张量场,它们对纵向投影完全没有贡献。从物理上看,这类张量场本质上“藏在数据无法感知的方向组合中”。

要刻画这一点,需要引入张量场分解。任何一个定义在凸区域上的对称张量场,通常可以分解为“势场部分”和“鞍部/横向部分”。更常见的是把它拆成两部分,一部分可以表示为某个向量场 v 的对称导数:

[d_s v]_{ij}(x) = (∂ᵢ vⱼ + ∂ⱼ vᵢ)/2

如果 σ 具有这种形式,那么在很多标准域上,它的纵向射线变换可能是零,或者只依赖于边界条件。这就是所谓的不可见分量。

从反演角度说,对纵向射线变换求逆时,能够恢复的主要是“solenoidal 分量”或与其等价的横向结构,而“potential 分量”会和一个已知的边界条件“差一个梯度”被淹没。这个现象不是数值病态造成的,而是连续数学层面就存在的多解性。很多张量层析论文的核心工作,就是在给定边界值、或附加其他类型测量条件下,把可识别性恢复到最大。

David Omogbhe 的报告标题强调 Fourier method,本质上是在说:这类可见与不可见分量的判别,在频域中可以表达得更清楚、更机械化。

4. 傅里叶方法的核心:张量切片定理

在标量 CT 中,中心切片定理指出:对某固定角度 θ 的投影 p_f(θ,s) 做一维 Fourier 变换,得到的是 f 的二维 Fourier 变换在一条过原点的直线上的切片,即:

F_θ→η p_f(θ, s) = f̂(η θ)

其中 f̂ 是二维 Fourier 变换。所有角度的切片拼在一起,就能覆盖频域中所有非零频率点。

张量断层扫描中,需要推导类似的切片关系。以上面的纵向射线变换为例,我们对变量 s 做 Fourier 变换:

Iσ̂(θ, η) = ∫ e^{-i η s} Iσ(θ,s) ds

沿着直线 L(θ,s) 的参数化 x = sθ + tθ⊥,可以把积分拆成关于 x 的二维积分。利用 Fourier 变换的性质,得到的切片关系是:

Iσ̂(θ, η) = θᵀ σ̂(η θ) θ = σ̂(η θ) : (θ θᵀ)

这里 σ̂ 是 σ(x) 对空间变量的二维 Fourier 变换,符号 A:B 表示矩阵内积 tr(AᵀB)。这个式子非常关键:投影数据在频域中给出的不是 σ̂ 的任意分量,而是它沿方向 θ 的二次型。

换句话说,每条测量射线只提供频域中一个频率点上的一个二次型采样。如果我们固定一个频率点 ξ = ηθ,那么能观测到的量是:

q(θ) = θᵀ σ̂(ξ) θ

而 σ̂(ξ) 是一个对称矩阵。对称矩阵有 3 个独立分量;我们需要至少 3 个不同的 θ 值来解出这三个分量。这在连续测量中并不困难,因为角度 θ 是连续变化的。真正的问题是,频率点 ξ 和方向 θ 是绑定的。一个测量角 θ 只覆盖频率方向上与 θ 重合的那些频率点。

于是张量层析的频域重建,可以理解成这样一个流程:

  1. 采集多个角度 θ 下的纵向射线变换 Iσ(θ,s);
  2. 对每个角度做一维 Fourier 变换,得到 Iσ̂(θ,η):
  3. 利用切片关系式 Iσ̂(θ,η) = σ̂(ηθ) : (θθᵀ),将数据分散映射到频率平面;
  4. 在每个频率点 ξ 上,根据覆盖该点的测量方向构造线性方程组;
  5. 求解频率空间中的组分,形成 σ̂(ξ);
  6. 做逆 Fourier 变换,得到空间域重建 σ(x)。

这套思路就是“张量层析的 Fourier 方法”最常见的内核。它不是某个特定软件包,而是一族频域重建策略。从报告标题看,David Omogbhe 很可能在这个框架下给出了新的显式重建公式或新的分解方式。

5. 解耦与分解:可见分量和不可见分量的处理

如果只是把频域切片关系写出来,然后逐频率点做最小二乘,处理一般张量场还不够。因为前面已经提到,纵向射线变换存在核空间。这个不可见性在频域中如何体现?答案是:频域中存在某些张量结构,无论怎么组合测量方向 θ,它们都不会出现在观测数据 q(θ) = θᵀσ̂(θ)θ 中。

从线性代数角度看,如果 σ̂(ξ) 恰好具有形式 ξνᵀ + νξᵀ(或对称化梯度结构),那么 θᵀσ̂(ξ)θ 在满足 θ·ξ=0 时可能为零,或者说整体投影会给出非常有限的约束。这种结构对应空间域中的梯度/势场部分。由于纵向射线变换只记录“与射线方向平行的张量分量”,那些由势场产生的纯几何变形,往往会被积分过程抵消掉。

因此,频域方法中通常会有两步:

第一步是分解。把待求张量场在频域中分解成横场和纵场。对于对称张量场,可以构造一组和频率方向 ξ 相关的投影符号,使得:

σ̂(ξ) = σ̂_sol(ξ) + σ̂_pot(ξ)

其中 σ̂_sol 是横向部分,也是理论上可以被纵向数据唯一恢复的分量;σ̂_pot 是纵向部分,这部分在数据上不可见或只有低维约束。

第二步是滤波。既然不可见部分无法恢复,强行做最小二乘会产生退化。需要建立一个投影算子,直接把我们关心的横向分量从数据中解耦出来。从算法角度看,这一步在频域中做有天然优势:很多积分算子在频率方向上会变成代数运算。

在严格唯一性研究里,研究者通常还会讨论边界条件的作用。如果张量场在区域边界上已知,或者测量中加入了边界位移数据,那么原来不可见的纵向分量也可以被部分固定。另一种路径是改变测量类型,例如纵向变换之外再加入横向变换(transverse ray transform)数据。这样既覆盖纵向结构又覆盖横向结构,张量场可识别性会大幅改善。频域框架的优势在于,两种测量叠加时,反演公式可以用符号矩阵的形式统一表达。

6. 算法落地:从连续公式到离散数值实现

从频域连续公式到离散程序,中间隔着几个必须处理的技术点。这里给一个可行的实现路线,供复现报告或阅读相关代码时参考。

第一步:生成张量场的模拟数据。

假设区域是单位正方形,将空间离散为 N×N 网格。每个网格点放一个 2×2 对称矩阵 σ。为了做收敛性测试,最好选一个光滑且满足周期性边界条件的场,也可以取标准多项式场。

第二步:计算纵向射线变换。对给定角度 φ,射线穿过像素网格。常见实现是使用射线驱动或者像素驱动法。表达式可以简化为:

g[φ, s_idx] = Σ over pixels Σ_{i,j} σ_{ij}(pixel) θ_i θ_j · Δl

这里的 θ 由角度 φ 决定,Δl 是射线穿过该像素的长度。如果只是学习原理,可以使用双线性插值再叠加权重提高精度;如果做严格验证,建议改用解析投影,比如把张量场设置成已知 Fourier 基函数,这样投影可以直接算出来,避免“正向计算误差”对重建算法的污染。

第三步:对投影数据沿 s 轴做一维 FFT。计算得到 ĝ(φ, k)。

第四步:把频率空间的测量值分散到张量场的二维傅里叶域。每个实测频点 (u,v) 实际上是某个角度 φ 和径向频率 k 的产物,满足 (u,v) = k·(cos φ, sin φ)。在离散网格上,指数 (u,v) 不一定是整数格点,需要使用邻域插值或反距离加权。如果你希望严格一些,可以设置“极坐标频域重建”,把所有数据保留在极坐标中,只在最终反演时转换到直角坐标。

第五步:在每个频率网格点上,构建线性系统。因为 ξ 固定时,方向 φ 覆盖该频率点的各个方向。设 ξ = (u,v),那么能够观测到的数据可以堆成向量:

m(ξ) = [θ₁ᵀσ̂(ξ)θ₁, θ₂ᵀσ̂(ξ)θ₂, ..., θ_Kᵀσ̂(ξ)θ_K]ᵀ

写成矩阵形式,把 σ̂ 的独立分量展开:

m(ξ) = A ξ_vec

其中 ξ_vec = [σ̂₁₁(ξ), σ̂₂₂(ξ), σ̂₁₂(ξ)]ᵀ,矩阵 A 的第 k 行是:

[(θ_k,1)², (θ_k,2)², 2(θ_k,1)(θ_k,2)]

这是一个非常小规模的 K×3 最小二乘问题,直接求解即可。

第六步:对全频域执行上述反演后,使用二维 IFFT 得到 σ(x) 的重建。

下面给一个简化的 Python 伪代码:

import numpy as np def forward_longitudinal_ray_transform(sigma, angles, offsets, dx): """ sigma: (N, N, 2, 2) 对称张量场 angles: 射线角度 offsets: 离散 s dx: 空间步长 返回投影数据 proj (len(angles), len(offsets)) """ # 实际需要实现射线与像素的交集长度 proj = np.zeros((len(angles), len(offsets))) for i, ang in enumerate(angles): theta = np.array([np.cos(ang), np.sin(ang)]) w = np.outer(theta, theta) # θ θᵀ for j, s in enumerate(offsets): # 沿直线 x·θ = s 采样张量场,再与 w 做内积并求和 line_pixels = sample_line(sigma, ang, s, dx) proj[i, j] = np.sum(line_pixels * w) return proj def reconstruct_fourier_tensor(proj, angles, offsets, N, dx): """ 频域张量 CT 重建骨架: 1) proj 沿 offset 做 1D FFT 2) 对每个空间频点构造线性系统 3) 最小二乘解出 σ̂ 三个独立分量 4) IFFT """ proj_hat = np.fft.fft(proj, axis=1) sigma_hat = np.zeros((N, N, 3), dtype=complex) # 对每个频点 (kx, ky) 执行代数反演 for kx in range(N): xi_x = 2.0 * np.pi * (kx - N // 2) / (N * dx) for ky in range(N): xi_y = 2.0 * np.pi * (ky - N // 2) / (N * dx) A_rows = [] b_vals = [] for i, ang in enumerate(angles): theta = np.array([np.cos(ang), np.sin(ang)]) freq_dir = np.dot(theta, np.array([xi_x, xi_y])) # 将proj_hat中的值映射到该频率点上 val = interpolate_proj_hat(proj_hat[i], freq_dir, dx) A_rows.append([theta[0]**2, theta[1]**2, 2*theta[0]*theta[1]]) b_vals.append(val) A = np.array(A_rows) b = np.array(b_vals) coef, _, _, _ = np.linalg.lstsq(A, b, rcond=None) sigma_hat[kx, ky] = coef sigma = np.fft.ifft2(sigma_hat, axes=(0, 1)).real return sigma

这里需要特别提醒:上面这段代码只是帮助理解框架的骨架,比例因子、坐标归一化、频点索引方式都要根据实际实现调整。真正的工程版本可能需要引入极坐标到直角坐标的插值,或者采用非均匀 FFT(NUFFT)来提升精度。如果想了解报告的精确实现,需要等待作者公开代码、补充材料或直接阅读其发表论文。

7. 典型应用场景:哪些领域会用到张量断层

张量断层扫描不是纯理论玩具。凡是“沿路径积分的物理量是张量的投影”这类测量,都能套进上述建模框架。

第一个典型场景是光弹性断层扫描。透明材料在受到应力时会产生双折射,偏振光穿过样品后,相位延迟与沿光路方向上的应力张量投影有关。理想化模型中,探测器测量结果常常被表示为二阶对称张量场沿光路的积分。要重建材料内应力分布,就面临典型的张量层析反问题。频域方法可以直接处理完整角度测量下应力张量横向分量的重建,并将不可见的静水压或“梯度型”应力分量识别出来。

第二个典型场景是医学或工业多普勒层析。多普勒测量给出的是声速或流速在探测方向上的投影,例如等离子体温度场与速度场的重建。等离子体边界、温度分布、流动速度会共同影响多普勒频移,重建问题中包含标量场和矢量场的耦合。更高阶建模中,粘性应力张量也会进入方程。

第三个典型场景是地震学中的各向异性层析。地球介质中弹性波速度不仅依赖于空间位置,还依赖于传播方向。对各向异性介质的弱各向异性近似下,波速扰动可以表达到二阶张量(甚至四阶张量)的投影。利用地震台站收到的不同射线方向数据,可以尝试重建地壳中方位各向异性参数。这里的方向多样性和射线覆盖直接决定张量分量能否被恢复。

第四个场景是中子或 X 射线 Bragg 边缘断层扫描,用于测量晶体材料内部的残余应力分布。测量结果与晶格间距在测量方向上的投影有关,本质上是在反演一个应变张量场。应变张量场的对称性使得它非常适合用张量层析方法处理。Bragg 边缘成像获取的是衍射信息在特定方向上的分量,频域重建的优势在于能把不同方向测量整合到一个统一框架中,并给出可识别性判断。

第五个场景是流场测量。某些光学或声学测量中,激光穿过流体时累积的相位与速度场、剪切应力场相关。如果只是二维流速矢量场,用向量层析即可完成;但如果要研究湍流中的应力结构,就可能上升到张量场重建。这类应用的一个共同特点是数据量巨大、射线覆盖不一定完整,所以“哪些频域分量需要被丢弃或做先验约束”比单纯做一次漂亮的反演更重要。

8. 复现验证思路与实验设计

如果你想把报告中的频域方法用代码验证一遍,不一定要复刻全部理论,可以按以下步骤设计一个最小化验证项目。

先做标量 CT 基线的复现。在 N=128 或 256 网格上生成 Shepp-Logan 或者光滑高斯团图,实现标准 Radon 变换和中心切片重建。这一步的作用是检查你的坐标系、频域索引、角度采样是否可靠。

再做矢量场层析,最后做二阶对称张量场测试。建议生成张量场时选择解析可投影的形式,例如:

σ(x) = a(x) e_r e_rᵀ + b(x) e_φ e_φᵀ

其中 e_r 和 e_φ 是极坐标基向量。对这种场计算纵向投影时可以先做坐标变化再求线积分,避免像素误差影响精度。求出投影数据后,利用上面的频域反演骨架做重建,并记录以下指标:

  • 角方向覆盖数:从 16 到 180 个角度递增;
  • 每个方向上的采样数:即 s 方向离散点数;
  • 频率域覆盖密度:观察频域中被投影覆盖的格点比例;
  • 重建 MSE 和结构相似度;
  • 不同分量的误差分离:单独看 σ₁₁、σ₂₂、σ₁₂ 各自误差。

理想情况下会发现:当角度采样足够密、频域覆盖完整个圆盘时,横向分量的重建误差会随网格加密而下降;而如果人为加入一个梯度型张量场,重建结果会把该分量“滤除”或只留下边界影响。这一现象是很好的验证标准。如果代码里把梯度场加进去后,重建误差变得很大,那通常说明你的反演方程没有把不可见空间排除在外,或者你的投影计算存在问题。

在实验设计上,建议刻意构造一个纯“势能型”张量场作为 adversarial test。因为理论预言它应该不可见,如果算法输出非零的势能分量,说明正问题或反问题实现里有缺陷。这个反向测试是检查实现是否正确的高效手段。

9. 常见问题:反演中的疑难与排查方向

问题现象可能原因排查思路解决方向
重建图像出现强方向性条纹测量角度覆盖不完整,频域中存在明显无数据区域画出频域采样覆盖图增加角度数或采用稀疏正则化
频域反演出现高频噪声放大高频格点覆盖数据太少,最小二乘条件数变差求各频率点矩阵 A 的条件数做带限滤波或 Tikhonov 正则化
给入纯梯度张量场仍能重建出非零结果反演方程没有投影到可识别子空间检查分解投影算子先对数据分量做核空间投影剔除
重建结果整体带有缓慢漂移不可见的纵向分量未给定边界条件检查是否缺少约束项引入额外边界测量或施加散度约束
正问题误差大,收敛率差射线与像素积分近似精度不足做高阶网格收敛性测试改用解析投影或提升采样率
频域插值导致结果边缘模糊极坐标频域数据转直角坐标时插值核过宽比较不同核函数使用 NUFFT 或最近邻分段处理
重建只对非常光滑的场有效程序对高频分量丢失太多检查角向极坐标网格密度增加到频域圆盘边缘的采样密度

对于张量层析,最难的问题通常是“判断误差来自反演病态性还是来自数据不足”,而不是工程实现。所以排查任何异常时,先回到频域覆盖图,再看单频点方程条件数,是最有效的定位路径。

10. 值得关注的延伸与学习路径

如果你对这个报告感兴趣,建议按下面顺序补背景知识。

第一是 Radon 变换和中心切片定理的标准教程。需要做到能自己推出标量 CT 的 FBP 公式,理解斜坡滤波的来源。没有这一层,后面张量切片定理的推导会显得突兀。

第二是张量场算子的谱分解。熟悉对称张量场如何分解成横向和纵向部分,理解纵向射束变换的核空间如何随维度变化。二维和三维的结论差异很大,不要直接类比。

第三是继续阅读张量层析领域经典文献。学术界这一方向的经典工作包括对射束变换、纵向变换、横向变换的完整刻画。阅读这些论文的符号体系,比东拼西凑看博客要有效得多。

第四是如果不是纯理论路线,而是想快速应用,建议选择一个具体场景,比如光弹性应力测量。在这个场景里把二维对称张量场重建做成程序,处理真实或半模拟数据,之后再向三维和高阶张量扩展。原因是三维二阶张量场有 6 个独立分量,数据和测量角度的覆盖要求会比二维复杂很多,初学者直接上三维容易迷失。

第五是关注报告人 David Omogbhe 后续公开的论文和代码。和纯理论报告配套的,通常会有更完整的积分公式推导、收敛性证明以及针对合成数据的数值实验。从会议公开材料中无法看到代码时,去找通讯作者版本或 preprint 是合理的路径。

11. 一个比较直接的判断

如果要用一段话总结这个报告方向的技术价值,我认为可以这样说:张量断层扫描的困难并不是“不知道怎么算”,而是“不知道什么东西本来就算不出来”。傅里叶方法提供了一个极其清晰的角度——它把张量场的不可见性直接变成了频域中某个方向上的退化问题,让研究者可以逐频率点地判断哪些信息能恢复、哪些信息需要额外假设。

对正在做 CT、地震波成像、应力测量或多普勒层析的工程师来说,这个方向值得收藏。它的推导虽然抽象,但最终落到代码上时并不复杂:一次线积分数据、一组方向角、一个逐频率点的最小二乘,再加一次逆傅里叶变换。核心始终是那条张量切片关系——数据在频域里究竟拍到的是哪种分量。弄懂这一点,比背十个重建公式都更有用。

如果你想最小化验证今天的内容,可以先在二维单位圆盘上生成一个光滑对称张量场,自己写纵向射线变换,再写本文的频域重建骨架,最后输入一个纯梯度张量场测试不可见性。跑通这三件事,你就已经跨过张量层析最关键的数学门槛了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 10:56:03

PDF转图片依赖库选型与实战:从Java、Python到Node.js的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 10:51:34

个人博客系统 -Flask SQLite

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于 Flask SQLite 的个人课程博客系统,支持 Markdown/HTML 双格式内容…

作者头像 李华
网站建设 2026/9/3 10:51:25

STM32矩阵按键驱动:从CubeMX配置到状态机扫描的完整实现

简介:本资源是一份面向嵌入式初学者与STM32进阶开发者的完整实践项目,聚焦于使用HAL库与CubeMX实现STM32F103RCT6对44矩阵按键的可靠识别与控制,解决多按键场景下GPIO资源受限、消抖处理、扫描逻辑与时序控制等典型工程问题。压缩包共183个文…

作者头像 李华
网站建设 2026/9/3 10:50:29

免费 3 步激活 Windows 和 Office:MAS 激活脚本新手指南

免费 3 步激活 Windows 和 Office:MAS 激活脚本新手指南 【免费下载链接】Microsoft-Activation-Scripts Open-source Windows and Office activator featuring HWID, Ohook, TSforge, and Online KMS activation methods, along with advanced troubleshooting. 项目地址: h…

作者头像 李华