morph op• データ種: pairs → pairs
• 呼び出し: import 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。
• 元の点が既に枠上や枠外にあっても検査しない。枠外の対応点は Delaunay 分割で枠の三角形と交差し、ワープが歪む。
morph / morph_sequence は with_corners=True で内部的にこれを両方の点群に掛ける。warp_piecewise_affine / warp_tps_image を直接呼ぶときは自分で src と dst の両方に足すこと。
• shape_description_2d ファミリ ガイド
• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。
• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。
• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。
• shape2d_morph_descriptor_tour — py -3.11 examples/shape2d_morph_descriptor_tour.py
pairs を入力に取れる)elliptic_fourier · fourier_smooth · contour_fourier_complex · 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.