contour_fourier_complex — SHAPE2D descriptor op

• Data kinds: pairs → matrix

• Call: import fullseye as fs; fs.ledger.contour_fourier_complex(points, n_harmonics=None, parametrisation='index') (implementation को सीधे call करना हो तो import fourierdesc; fourierdesc.contour_fourier_complex(points, n_harmonics=None, parametrisation='index'), registry से लेना हो तो opsshape2d.get("contour_fourier_complex"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

बंद contour को complex Fourier series के गुणांकों में बदलता है — z(t) = Σ c_k exp(2πi k t)।

तर्क:

अंक: (एन,2) बंद समोच्च शीर्ष। (पंक्ति, स्तंभ) क्रम (फूरियरडेस्क के समान)।

n_harmonics: शेष क्रम K(|k| <= K). कोई नहीं अधिकतम तक जिसका प्रतिनिधित्व किया जा सकता है।

पैरामीटरीकरण: "सूचकांक" = बिंदु सूचकांक को समान दूरी वाला पैरामीटर बनाएं /

"आर्कलेंथ" = चाप लंबाई और कनवर्ट करने से पहले समान अंतराल पर पुनः टाइप करें।

वापसी मूल्य: आम तौर पर (2K+1, 3), या (2K, 3) का एक वास्तविक सरणी (मैट्रिक्स) नाइक्विस्ट डिग्री तक सम अंक छोड़ने के लिए। पंक्ति है [k, Re c_k, Im c_k] k 0, 1, -1, 2, -2, ... (कम आवृत्ति से) है।

★इस ऑपरेशन की कुंजी चुपचाप यह तय करना नहीं है कि पैरामीट्रिक चर कैसे लेना है। असमान रूप से नमूना किया गया "सूचकांक" के साथ समोच्च को पढ़ने से घने बिंदुओं वाले क्षेत्रों को अतिरिक्त समय आवंटित होता है, चित्र समान हैं, लेकिन गुणांक भिन्न हैं (वास्तव में, k=3 का गुणांक 47 गुना भिन्न था)। डिफ़ॉल्ट "इंडेक्स" (एफएफटी का मूल अर्थ) है, लेकिन यदि आप इसे आकार विवरण के रूप में उपयोग करते हैं, "आर्कलेंथ" चुनें।

★★यदि आप आर्कलेंथ'' का चयन करते हैं, तो समोच्च को op के अंदर फिर से खींचा जाएगा, इसलिए लौटाए गए गुणांक होंगे पारित सरणी के बजाय पुनः तैयार की गई रूपरेखा लिखें। इसलिए contour_fourier_truncation_energy "पुनर्निर्मित आकृति के लिए" की भविष्यवाणी करता है यह सख्त है, और जब कॉलर हाथ में मौजूद सरणी का उपयोग करके त्रुटि को मापता है, तो यह मेल नहीं खाता है (वास्तविक माप: 512 अंक, 1.15 का विचलन)। यदि आप मौजूदा सरणी के लिए सटीक भविष्यवाणी चाहते हैं, तो पहले चाप की लंबाई के साथ पुनः टाइप करें इसे "इंडेक्स" के साथ कॉल करें।

★चाप की लंबाई को रीसेट करना निरर्थक नहीं है: चूंकि नमूने एक स्ट्रिंग के साथ एक साथ बंधे हैं, चाप की लंबाई की रूपरेखा पहले से ही बराबर है। एक बार और बिंदु को 3.73 px (औसत 0.84 px) तक ले जाता है और लंबाई अतिरिक्त 3.25% बढ़ा देता है सिकुड़ना. दो बार कॉल न करें.

उपयोग की विस्तृत 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 करते हैं)

• poc_one_stroke_epicycles — py -3.11 examples/poc_one_stroke_epicycles.py

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

contour_epicycle_chain · contour_fourier_truncation_energy

इसी category के (descriptor)

elliptic_fourier · reconstruct · invariants · normalize · descriptor_distance · fourier_smooth · from_xld · fit_circle_xld


*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.