morph oppairs → pairsimport fullseye as fs; fs.ledger.add_frame_corners(pts, shape) (実装を直接呼ぶなら import imagemorph; imagemorph.add_frame_corners(pts, shape)、台帳から引くなら opsshape2d.get("add_frame_corners"))点群に画像の四隅(+辺の中点)を固定点として足す。
ワープの三角形分割が画像全体を覆い、凸包の外側にできる穴を防ぐための定番処置。 src/dst の両方に同じ順序で足せば、四隅は「動かない対応点」として働く。
足す 8 点は画素中心座標 (x, y) で、W-1 / H-1 を端とする:
(0,0) (xm,0) (W-1,0) (0,ym) (W-1,ym) (0,H-1) (xm,H-1) (W-1,H-1)
(xm = (W-1)/2、ym = (H-1)/2)。この順で末尾に連結する。
pts: (N, 2) の (x, y)(x = 列、y = 行)、有限。(row, col) を渡すと
x と y が入れ替わったまま通る(例外は出ない)。shape: 画像の shape((H, W) でも (H, W, C) でも先頭 2 つを使う)。(N + 8, 2) float64。morph / morph_sequence は with_corners=True で内部的にこれを両方の
点群に掛ける。warp_piecewise_affine / warp_tps_image を直接呼ぶときは
自分で src と dst の両方に足すこと。
py -3.11 examples/shape2d_morph_descriptor_tour.pypairs を入力に取れる)elliptic_fourier · fourier_smooth · warp_tps_image · warp_piecewise_affine · morph · morph_sequence
morph)warp_tps_image · warp_piecewise_affine · blend · morph · 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.