normalize — SHAPE2D descriptor op

• Data kinds: efdmodel → matrix

• Call: import fullseye as fs; fs.ledger.normalize(model, size_invariant=True) (implementation को सीधे call करना हो तो import fourierdesc; fourierdesc.normalize(model, size_invariant=True), registry से लेना हो तो opsshape2d.get("normalize"))

उपयोग

EFD गुणांकों को "canonical pose" के गुणांकों में बदलता है (1st harmonic के आधार पर align किया गया)।

Kuhl–Giardina canonicalisation: (1) 1 ले harmonic के phase से start point की मनमानी हटाना, (2) 1 ले ellipse के long axis को reference axis पर घुमाकर orientation एक करना, (3) 1 ले harmonic के long axis की लंबाई से भाग देकर आकार एक करना। कई shapes को ऊपर-नीचे रखने/average करने जैसे "canonical pose reconstruction" के लिए।

सावधानी (honest): जिन shapes का 1 ला harmonic लगभग गोल (long axis ≈ short axis) हो, उनमें phase (theta/psi) ill-conditioned होकर अस्थिर हो जाता है। invariant matching के लिए यह function नहीं, बल्कि invariants / descriptor_distance (singular value आधारित) इस्तेमाल करें।

उपयोग की विस्तृत guide

• shape_description_2d family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• piv_flow_from_particles — py -3.11 examples/piv_flow_from_particles.py

• poc_exoplanet_transit — py -3.11 examples/poc_exoplanet_transit.py

वे अगले ops जिनसे type जुड़ता है (matrix को input के रूप में लेते हैं)

contour_epicycle_chain · contour_fourier_truncation_energy

इसी category के (descriptor)

elliptic_fourier · reconstruct · invariants · descriptor_distance · fourier_smooth · from_xld · contour_fourier_complex · contour_epicycle_chain


*Provenance: fourierdesc.py — SHAPE2D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.