morph_sequence — SHAPE2D morph op

• 데이터 종류: image2d × image2d × pairs × pairs → images

• 호출: import fullseye as fs; fs.ledger.morph_sequence(imgA, imgB, ptsA, ptsB, n=7, method='affine', lam=0.0, with_corners=True)(구현을 직접 호출하려면 import imagemorph; imagemorph.morph_sequence(imgA, imgB, ptsA, ptsB, n=7, method='affine', lam=0.0, with_corners=True), 원장에서 가져오려면 opsshape2d.get("morph_sequence"))

사용법

alpha를 0→1로 n단계에 걸쳐 바꾼 모프 열(A에서 B로 매끄럽게 변하는 각 프레임).

반환값: 길이 n 의 list. 처음이 A, 끝이 B 에 일치한다.

alpha = linspace(0, 1, n) 의 각 값으로 morph(imgA, imgB, ptsA, ptsB, alpha, method, lam, with_corners) 를 부를 뿐. 각 프레임은 (1) 중간점 (1-α) ptsA + α ptsB 를 만들고, (2) A 와 B 를 각각 그곳으로 워프하고,

(3) α 로 크로스 디졸브, 의 3 단계. 프레임마다 워프 2 회이므로,

비용은 n 에 비례한다(n=7 에서 14 회).

• imgA, imgB: (H, W[, C]), 같은 형태, [0, 1]. NaN/Inf 는 말없이 0 / 1 로 치환된다.

• ptsA, ptsB: (K, 2) 의 (x, y), 같은 수·같은 순서의 대응점.

• n: 2 이상(1 이하는 ValueError). int 로 잘린다.

• method: "affine"(Delaunay 구분 아핀, 빠름) / "tps"(박판 스플라인, 매끄러움). 그 외는 ValueError. lam 은 TPS 의 평활화 계수(0 이면 엄밀 보간).

• with_corners: True 로 add_frame_corners 를 양 점군에 더해, 틀 바깥의구멍을 막는다.

• 반환값: float64 배열 n 장의 list(images 형). [0, 1] 로 클립 완료.

1 장만 원한다면(예: α = 0.5 의 중간 얼굴) morph 를 직접.

자세한 사용 가이드

• shape_description_2d 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• image_morph — py -3.11 examples/image_morph.py

타입이 이어지는 다음 연산자(images 를 입력으로 받는 것)

—

같은 카테고리(morph)

add_frame_corners · warp_tps_image · warp_piecewise_affine · blend · morph


*Provenance: imagemorph.py — SHAPE2D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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