Added Lanczos to warpAffine

This commit is contained in:
David Chatel
2025-02-11 17:15:48 +01:00
parent 7176d84c5e
commit dfa90ae487
2 changed files with 5 additions and 3 deletions
+4 -2
View File
@@ -172,13 +172,15 @@ class WarpFaceBack:
crop, mask, warp = list(zip(*[x[1:] for x in values]))
warped_masks = [cv2.warpAffine(single_mask.numpy(),
cv2.invertAffineTransform(single_warp),
image.shape[1::-1])
image.shape[1::-1],
flags=cv2.INTER_LANCZOS4)
for single_warp, single_mask in zip(warp, mask)]
full_mask = np.add.reduce(warped_masks, axis=0)[...,None]
swapped = np.add.reduce([
cv2.warpAffine(single_crop.cpu().numpy(),
cv2.invertAffineTransform(single_warp),
image.shape[1::-1]
image.shape[1::-1],
flags=cv2.INTER_LANCZOS4
) * single_mask[..., None]
for single_crop, single_mask, single_warp in zip(crop, warped_masks, warp)
], axis=0) / np.maximum(1, full_mask)
+1 -1
View File
@@ -119,7 +119,7 @@ class Face:
T3 = np.array([[1, 0, -cx], [0, 1, -cy], [0, 0, 1]])
T4 = np.array([[1, 0, cx], [0, 1, cy], [0, 0, 1]])
N = N @ T4 @ S @ T3
crop = cv2.warpAffine(self.img.numpy(), N, (size, size))
crop = cv2.warpAffine(self.img.numpy(), N, (size, size), flags=cv2.INTER_LANCZOS4)
crop = torch.from_numpy(crop)[None]
return N, crop