morph_sequence — SHAPE2D morph op

• 資料種類:image2d × image2d × pairs × pairs → images

• 呼叫: import fullseye as fs; fs.ledger.morph_sequence(imgA, imgB, ptsA, ptsB, n=7, method='affine', lam=0.0, with_corners=True)(要直接呼叫實作,import imagemorph; imagemorph.morph_sequence(imgA, imgB, ptsA, ptsB, n=7, method='affine', lam=0.0, with_corners=True);從台帳取用則 opsshape2d.get("morph_sequence"))

用法

將 alpha 以 n 步從 0→1 變化得到的變形序列(從 A 平滑變化到 B 的各影格)。

回傳值: 長度為 n 的 list。首個與 A 一致,末個與 B 一致。

只是對 alpha = linspace(0, 1, n) 的各值呼叫 morph(imgA, imgB, ptsA, ptsB, alpha, method, lam, with_corners)。每幀分 3 步:(1) 建構中間點 (1-α) ptsA + α ptsB,(2) 把 A 與 B 分別變形到那裡,

(3) 用 α 做交叉溶接。每幀變形 2 次,因此

成本與 n 成正比(n=7 時 14 次)。

• imgA, imgB: (H, W[, C]),形狀相同,[0, 1]。NaN/Inf 被靜默替換為 0 / 1。

• ptsA, ptsB: (K, 2) 的 (x, y),數量相同、順序相同的對應點。

• n: 2 以上(1 以下拋出 ValueError)。截斷為 int。

• method: "affine"(Delaunay 分段仿射,快)/ "tps"(薄板樣條,平滑)。其他值拋出 ValueError。lam 為 TPS 的平滑係數(0 為嚴格內插)。

• with_corners: 為 True 時對兩組點集加上 add_frame_corners,防止框外側的空洞。

• 回傳值: n 個 float64 陣列的 list(images 型別)。已截斷到 [0, 1]。

若只要 1 張(例: α = 0.5 的中間臉),直接用 morph。

詳細使用指南

• shape_description_2d 族使用指南

參考(範例資料、文獻)

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

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

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

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

• image_morph — py -3.11 examples/image_morph.py

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

—

同類別(morph)

add_frame_corners · warp_tps_image · warp_piecewise_affine · blend · morph


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

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