descriptor opefdmodel → matriximport fullseye as fs; fs.ledger.normalize(model, size_invariant=True) (実装を直接呼ぶなら import fourierdesc; fourierdesc.normalize(model, size_invariant=True)、台帳から引くなら opsshape2d.get("normalize"))EFD 係数を「正準ポーズ」の係数へ変換する(第1高調波を基準に整列)。
Kuhl–Giardina の正準化: (1) 第1高調波の位相で 始点 の任意性を除去、(2) 第1 楕円の長軸を基準軸へ回して 向き を揃え、(3) 第1高調波の長軸長で割って 大きさ を揃える。複数形状を重ねる/平均する等の「正準ポーズ再構成」向け。
注意(honest): 第1高調波がほぼ 円形(長軸≈短軸)の形状では位相 (theta/psi) が
悪条件で不安定になる。不変マッチングには本関数でなく :func:invariants /
:func:descriptor_distance(特異値ベース)を使うこと。
py -3.11 examples/piv_flow_from_particles.pypy -3.11 examples/poc_exoplanet_transit.pymatrix を入力に取れる)—
descriptor)elliptic_fourier · reconstruct · invariants · descriptor_distance · fourier_smooth · from_xld
Provenance: fourierdesc.py — SHAPE2D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.