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。
• 範例資料目錄(下載 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.