morph opimage2d × image2d × pairs × pairs → image2dimport fullseye as fs; fs.ledger.morph(imgA, imgB, ptsA, ptsB, alpha, method='affine', lam=0.0, with_corners=True) (実装を直接呼ぶなら import imagemorph; imagemorph.morph(imgA, imgB, ptsA, ptsB, alpha, method='affine', lam=0.0, with_corners=True)、台帳から引くなら opsshape2d.get("morph"))2 枚の画像 A, B を対応点でモーフし、比率 alpha の中間画像を作る。
手順(Beier–Neely 流のメッシュ・モーフ): 1. 中間形状 mid = (1-alpha)·ptsA + alpha·ptsB を作る。 2. A を ptsA→mid へ、B を ptsB→mid へワープ(両者の特徴を mid に揃える)。 3. warp(A), warp(B) を alpha でクロスディゾルブ。 alpha=0 で A、alpha=1 で B に一致する。単純な blend(A,B,alpha) と違い、 目・鼻などの特徴が二重像にならず 1 つに重なる(=「本物の中間」)。
引数: imgA, imgB: (H,W[,C])、同 shape、[0,1]。 ptsA, ptsB: (K,2) の (x,y)。A と B の対応点(同数・同順)。 alpha: 合成比率 [0,1]。 method: “affine”(区分アフィン, 速い)か “tps”(滑らか)。 lam: TPS の平滑化係数(method=”tps” のとき)。 with_corners: True で四隅を固定点に足し、端の穴を防ぐ。
返り値: (H,W[,C]) の中間画像([0,1])。
py -3.11 examples/image_morph.pyimage2d を入力に取れる)warp_tps_image · warp_piecewise_affine · blend · morph_sequence
morph)add_frame_corners · warp_tps_image · warp_piecewise_affine · blend · morph_sequence
Provenance: imagemorph.py — SHAPE2D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.