superquadric op• 数据种类:points → measurement
• 调用: import fullseye as fs; fs.ledger.superquadric_residual(points, a, eps, R, t) -> 'float'(要直接调用实现,import superquadric; superquadric.superquadric_residual(points, a, eps, R, t) -> 'float';从台账取用则 ops3d.get("superquadric_residual"))
Gross-Boult 体积修正残差 mean( (sqrt(a1 a2 a3)(F^eps1 - 1))^2 )。
用 inside_outside(points, a, eps, R, t) 求出各点的内外函数 F,将逐点残差 r_i = sqrt(a1*a2*a3) * (F_i**eps1 - 1) 的 2 次方平均值以 float 返回。表面上的点 F=1,因此残差为 0,内侧为负、外侧为正的残差(取 2 次方后符号消失)。与 fit_superquadric 最小化的量相同,返回 dict 中的 residual 也是这个值。
• points: 可 reshape 为 (N,3) 的点云(world 坐标)。
• a: 半径 (a1,a2,a3)。eps: 形状指数 (eps1,eps2)(计算 F 时两者都用,外层的 F**eps1 只用 eps1)。
• R/t: 位姿(X_body = R.T @ (X - t))。None 表示单位旋转 / 原点。
数值保护:F 裁剪到 [0, 1e12],a1*a2*a3 提升到 1e-12 以上后再取 sqrt (为了在退化参数下不出现 inf/NaN。对表面附近的值没有影响)。
量纲:sqrt(a1 a2 a3) 是长度的 3/2 次方,F^eps1 - 1 无量纲,因此返回值具有长度 3 次方的量纲,依赖于点云的尺度。不适合比较大小不同的物体。它不是真正的点-表面欧氏距离而是径向距离近似,并且对离群值毫无防御,这些如模块 docstring 所述。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• superquadric_fit — py -3.11 examples_3d/superquadric_fit.py
measurement 作为输入)vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle
superquadric)fit_superquadric · sample_surface · inside_outside
*Provenance: superquadric.py — 3D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.