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"))
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.
• shape_description_2d family guide
• 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.
• shape2d_morph_descriptor_tour — py -3.11 examples/shape2d_morph_descriptor_tour.py
pairs as input)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. 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.