将具有透明背景的图像混合到普通图像(非透明背景)后,如何调整 alpha 值?

我正在做一个实现虚拟化妆的项目。我在实施眼线笔部分时遇到问题。


我应该如何更改 alpha 值(alpha_s,alpha_l)?在 Python 中?


我想调整 alpha 值,使人脸图像上的眼线可能不可见,可能看起来模糊,或者我想看清楚。


面部图像来源是 YouTube 'Bom Bom Bom Bom'(Apink 的 Bomi)


下面是python代码,人脸的高度和宽度,img是一样的。


face = cv2.imread('./image/ex1.png')

img = cv2.imread('./result_3.png',-1) ## It is shaped like a left eyeliner and has a transparent background.


x_offset = y_offset = 0

alpha_s = img[:, :, 3] / 255.0

alpha_l = 1.0 - alpha_s

for c in range(0, 3):


    face[y_offset:y_offset+img.shape[0], x_offset:x_offset+img.shape[1], c] = \

    (alpha_s * img[:, :, c] + alpha_l * face[y_offset:y_offset+img.shape[0], 

    x_offset:x_offset+img.shape[1], c])

cv2.imshow('result', face)

cv2.waitKey(0)

cv2.destroyAllWindows()

“result_3.png”图像看起来像这样。->在此处输入图像描述

部分代码结果图片(左眼)-> enter image description here

请帮我。


慕侠2389804
浏览 43回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python