我有一张黑色背景的眼镜图像,需要将其覆盖在面部图像上。为此,我正在拍摄与眼镜形状相同的面部图像部分。并将面部图像的颜色放在眼镜图像的黑色部分上。然后可以放回图像的这一小部分。但是我无法从面部图像中为眼镜图像获取正确的颜色。我尝试了这个:
specs[np.where((hmd == [0,0,0,0]).all(axis=2))] = sub_face
规格图片:
人脸图像:
我需要将调整大小后的规格图像当面。我已经调整了规格图像的大小,并且还知道将规格放置在面部图像上的位置。我只需要从规格中删除黑色背景并添加相关的脸部颜色,就可以自然地看到脸上有规格。
我正在使用的代码:
import cv2
specs = cv2.imread("rot_h0v0z0.png")
face = cv2.imread("~/Downloads/celebA/000001.png")
specs = cv2.resize(image, None, fx=0.3, fy=0.3, interpolation=cv2.INTER_AREA)
sub_face = face[0:specs.shape[0], 0:specs.shape[1]]
specs[np.where((hmd == [0,0,0,0]).all(axis=2))] = sub_face
能够解决它,结果很简单:P
(b,g,r) = cv2.split(specs)
indices = np.where(b == [0])
for i,j in zip(indices[0], indices[1]):
specs[i,j] = sub_face[i,j]
答案 0 :(得分:0)
能够解决它,结果很简单:P
\"...\"