add_frame_corners — SHAPE2D morph op

• Data kinds: pairs → pairs

• Call: import fullseye as fs; fs.ledger.add_frame_corners(pts, shape) (to call the implementation directly, import imagemorph; imagemorph.add_frame_corners(pts, shape); from the registry, opsshape2d.get("add_frame_corners"))

Usage

Adds the four corners of the image (+ the edge midpoints) to the point set as fixed points.

The standard measure so that the warp's triangulation covers the whole image and prevents holes outside the convex hull. Added to both src/dst in the same order, the four corners act as "corresponding points that do not move".

The 8 added points are in pixel-centre coordinates (x, y), with W-1 / H-1 as the edges:

(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). They are concatenated at the end in this order.

• pts: (N, 2) (x, y) (x = column, y = row), finite. If you pass (row, col), it goes through with x and y swapped (no exception is raised).

• shape: the image's shape (for (H, W) or (H, W, C) the first 2 are used).

• Returns: (N + 8, 2) float64.

• It is not checked whether the original points already lie on or outside the frame. Corresponding points outside the frame intersect the frame triangles in the Delaunay triangulation, and the warp is distorted.

morph / morph_sequence apply this internally to both point sets with with_corners=True. When calling warp_piecewise_affine / warp_tps_image directly, add them yourself to both src and dst.

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)

• shape2d_morph_descriptor_tour — py -3.11 examples/shape2d_morph_descriptor_tour.py

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

elliptic_fourier · fourier_smooth · contour_fourier_complex · warp_tps_image · warp_piecewise_affine · morph · morph_sequence

Same category (morph)

warp_tps_image · warp_piecewise_affine · blend · morph · morph_sequence


*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.