model op• 数据种类:shapemodel × points → signal
• 调用: import fullseye as fs; fs.ledger.shape_project(model, shape, align: 'bool' = True)(要直接调用实现,import shapestats; shapestats.shape_project(model, shape, align: 'bool' = True);从台账取用则 opsshapestat.get("shape_project"))
将形状映射到模型坐标(主成分得分)。→ (k,)。
align=True 时先用 Procrustes 对齐到平均形状。不对齐就投影,位置与朝向的差异会漏进得分,同一形状看起来像另一个个体。
公式: scores = components @ (shape - mean).ravel()(components 为 (k, N*3) 的正交归一行,mean 为 (N, 3))。align=True 时先应用 procrustes_align(shape, mean)(含缩放、无镜像)。
• model: shape_pca 的返回值(含 mean / components / variance / n_points 的 dict)。缺少则抛出 ValueError。
• shape: (N, 3),N == model["n_points"],有限值。点的排列须与训练所用的特征点顺序相同(对应关系不同也不会抛出异常)。
• align: 默认 True。投影到用 shape_pca(align=False) 建立的模型(把大小算作形质) 时,这里也必须设为 False,否则尺度会消失。
• 返回值: (k,) float64。各成分的单位与坐标相同。除以 sqrt(variance) 即为标准差单位(偏离了几个 σ)。
• 失败: ValueError(模型格式、点数不一致、非有限值)。
逆映射是 shape_reconstruct,表示偏离程度的 1 个数值是 shape_mahalanobis。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• shapestat_landmark_tour — py -3.11 examples/shapestat_landmark_tour.py
signal 作为输入)model)shape_pca · shape_reconstruct · shape_mahalanobis · shape_explained_variance · shape_synthesize
*Provenance: shapestats.py — SHAPESTAT 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.