morph_sequence — SHAPE2D morph op

• Data kinds: image2d × image2d × pairs × pairs → images

• Call: import fullseye as fs; fs.ledger.morph_sequence(imgA, imgB, ptsA, ptsB, n=7, method='affine', lam=0.0, with_corners=True) (to call the implementation directly, import imagemorph; imagemorph.morph_sequence(imgA, imgB, ptsA, ptsB, n=7, method='affine', lam=0.0, with_corners=True); from the registry, opsshape2d.get("morph_sequence"))

Usage

Morph sequence with alpha swept 0→1 in n steps (frames that change smoothly from A to B).

Returns: a list of length n. The first matches A, the last matches B.

It simply calls morph(imgA, imgB, ptsA, ptsB, alpha, method, lam, with_corners) for each value of alpha = linspace(0, 1, n). Each frame has 3 stages: (1) build the intermediate points (1-α) ptsA + α ptsB, (2) warp A and B each onto them,

(3) cross-dissolve with α. Each frame does 2 warps, so

the cost is proportional to n (14 warps for n=7).

• imgA, imgB: (H, W[, C]), same shape, [0, 1]. NaN/Inf are silently replaced by 0 / 1.

• ptsA, ptsB: (K, 2) (x, y), corresponding points of same count and order.

• n: 2 or more (1 or less gives ValueError). Truncated to int.

• method: "affine" (Delaunay piecewise affine, fast) / "tps" (thin-plate spline, smooth). Anything else gives ValueError. lam is the TPS smoothing coefficient (0 for exact interpolation).

• with_corners: True adds add_frame_corners to both point sets, preventing holes outside the frame.

• Returns: a list of n float64 arrays (type images). Already clipped to [0, 1].

If you want just 1 image (e.g. the intermediate face at α = 0.5), use morph directly.

Detailed usage guide

• shape_description_2d family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• image_morph — py -3.11 examples/image_morph.py

Ops the type connects to (they accept images as input)

—

Same category (morph)

add_frame_corners · warp_tps_image · warp_piecewise_affine · blend · morph


*Provenance: imagemorph.py — SHAPE2D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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