contour_fourier_complex — SHAPE2D descriptor op

• 資料種類:pairs → matrix

• 呼叫: import fullseye as fs; fs.ledger.contour_fourier_complex(points, n_harmonics=None, parametrisation='index')(要直接呼叫實作,import fourierdesc; fourierdesc.contour_fourier_complex(points, n_harmonics=None, parametrisation='index');從台帳取用則 opsshape2d.get("contour_fourier_complex"))

• GPU:無(僅 CPU 參考實作)

用法

將封閉輪廓轉換為複數傅立葉級數的係數 —— z(t) = Σ c_k exp(2πi k t)。

論點:

點:(N,2) 個閉合輪廓頂點。 (行,列)順序(與fourierdesc相同)。

n_harmonics:剩餘階數K(|k| <= K)。 「無」至可表示的最大值。

參數化:“index”=使點索引成為等距參數/

“arclength” = 弧長並在轉換之前以相等的間隔重新輸入。

傳回值:通常為“(2K+1, 3)”,或“(2K, 3)”的實數數組(“矩陣”),以保留偶數點至奈奎斯特度。該行是“[k,Re c_k,Im c_k]” 「k」 是「0, 1, -1, 2, -2, …」(從低頻)。

★這個運算的關鍵不是默默地決定如何取得參數變數。取樣不均勻使用「索引」讀取輪廓會為點密集的區域分配額外的時間,圖片相似,但係數不同(實際上,「k=3」的係數相差47倍)。預設是"index"(FFT的基本意義),但如果你用它作為形狀描述,選擇“弧長”。

★★如果選擇arclength'',輪廓將在op內部重新繪製,因此返回的係數將是寫入重繪輪廓而不是傳遞的陣列。因此 contour_fourier_truncation_energy 預測“重繪輪廓” 它是嚴格的,當呼叫者使用手邊的陣列測量誤差時,它不匹配(實際測量:512點,偏差為1.15)。如果您想精確預測手邊的數組,先重新輸入弧長用"index" 來稱呼它。

★重置弧長不是冪等的:由於標本是用繩子綁在一起的,所以弧長的輪廓已經相等。再次將點移到 3.73 px(平均 0.84 px),並將長度額外增加 3.25% 收縮。不要撥打兩次。

詳細使用指南

• shape_description_2d 族使用指南

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• poc_one_stroke_epicycles — py -3.11 examples/poc_one_stroke_epicycles.py

型別可銜接的下一個運算子(可接受 matrix 作為輸入)

contour_epicycle_chain · contour_fourier_truncation_energy

同類別(descriptor)

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


*Provenance: fourierdesc.py — SHAPE2D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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