영상처리/기초
Face swapping-Delaunay Triangulation(part 2) 들로네 삼각분할
Ninestar
2023. 1. 5. 11:49
반응형
추출한 얼굴을 타겟 얼굴에 매칭시켜주기 위해 들로네 삼각분할을 합니다.
Delaunay(들로네) Triangulation(삼각분할)은 "어떤 삼각형의 외접원도 그 삼각형의 세 꼭지점을 제외한 다른 어떤 점도 포함하지 않는다" 최대한 정삼각형의 모양과 가깝게 분할한다는 특징이 있다.



아래 코드는
원본 마스크에서 들로네 삼각분할을 구현한 내용입니다.
# Delaunay triangulation
rect = cv2.boundingRect(convexhull)
subdiv = cv2.Subdiv2D(rect)
subdiv.insert(landmarks_points)
triangles = subdiv.getTriangleList()
triangles = np.array(triangles, dtype=np.int32)
for t in triangles:
pt1 = (t[0], t[1])
pt2 = (t[2], t[3])
pt3 = (t[4], t[5])
cv2.line(img, pt1, pt2, (0, 0, 255), 2)
cv2.line(img, pt2, pt3, (0, 0, 255), 2)
cv2.line(img, pt1, pt3, (0, 0, 255), 2)

part3에서 계속 진행하겠습니다.