gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:11:30 24 4
gpt4 key购买 nike

我正在做一个项目来实现虚拟化妆。
我在实现眼线笔部分时遇到问题。
我应该如何更改 alpha 值(alpha_s,alpha_l)?在 Python 中?
我想调整 alpha 值,使脸部图像上的眼线可能看不到,可能看起来模糊,或者我想看清楚。
人脸图片来源是 YouTube '뽐뽐뽐' (Apink's 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
部分代码结果图片(左眼)-> enter image description here
请帮我。

最佳答案

我通过引用下面的网站解决了这个问题。
https://www.pyimagesearch.com/2016/03/07/transparent-overlays-with-opencv/
核心代码)

cv2.addWeighted(overlay, alpha, face, 1 - alpha,0, face)
overlay 是应用了虚拟化的原始人脸图像,而 face 是原始人脸图像。
透明度可以根据alpha值进行调整。
笔记)
我能够在脸部图像上实现适合脸部图像的眼线形人物的外观,但我无法实现透明度调整。
为了调整透明度,我试着像原文的代码一样实现它。
但是,通过上面的核心代码成功实现了透明度控制。

关于python - 将具有透明背景的图像与普通图像(非透明背景)混合后如何调整 alpha 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63194436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com