【发布时间】:2014-05-20 03:08:04
【问题描述】:
我正在尝试使用 python 在 OpenCV 中使用按位运算添加两个不同大小的图像。我希望 Image1(人脸图像)中的特定点与 Image2(眼镜框图像)中的特定点重合。特定点不是图像的最角点。我知道框架眼镜的 2 个中点和眼睛的瞳孔。我希望框架中点与脸部眼睛的瞳孔点重合。我正在使用的代码将第二个图像的最左角点添加到 Image1 的特定点,如第 10 行所示,而我希望添加左玻璃框架的中点。
人脸图像可以是任意随机图像,眼镜图像如下-
我正在使用代码:
import cv2
import numpy as np
img_frame = cv2.imread('image1.jpg',1)
img_in = cv2.imread('face.jpg',1)
new_image = np.zeros(img_frame.shape,dtype=np.uint8)
i,j,k = img_frame.shape
for ii in range (1,i):
for jj in range (1,j):
pixel = img_frame[ii,jj]
img_in[339+ii,468+jj] = pixel
cv2.imwrite('pc2_with_frame_7.jpg',img_in)
cv2.imshow('win',img_in)
cv2.waitKey(0)
cv2.destroyWindow('win')
我们将不胜感激。
谢谢。
【问题讨论】:
-
您需要计算瞳孔之间的 x 距离和眼镜中心之间的 x 距离,并按该比例缩放眼镜以适应面部宽度。
-
你还需要计算眼睛是否水平,即两只眼睛的y坐标是否相同,否则你需要计算眼睛之间的y坐标并将其除以 x 差,取 tan 倒数并使用该角度旋转眼镜。
-
是的,缩放部分已经完成了,这是下一个问题,就是把它放在正确的地方
-
您是否会将眼镜图片更改为 PNG,它将支持透明度(而 JPEG 不支持)并允许眼睛透过?
-
是的,我想显示眼睛,或者它只能是不透明的部分或只是规格的框架。
标签: python image opencv addition