【发布时间】:2021-09-13 20:05:16
【问题描述】:
我正在使用以下脚本将原始视频的绿屏替换为背景图像,但结果不是我所期望的,我更改了 u_green 数组参数和 l_green,但它只会变得最糟糕。 最后,我想让它透明我应该使用哪个面具?
如果能提供任何解决此问题的帮助,我将不胜感激。
Python 脚本:
import cv2
import numpy as np
video = cv2.VideoCapture("green.mp4")
image = cv2.imread("bg.jpg")
while True:
ret, frame = video.read()
frame = cv2.resize(frame, (640, 480))
image = cv2.resize(image, (640, 480))
u_green = np.array([104, 153, 70])
l_green = np.array([30, 30, 0])
mask = cv2.inRange(frame, l_green, u_green)
res = cv2.bitwise_and(frame, frame, mask=mask)
f = frame - res
f = np.where(f == 0, f, image)
cv2.imshow("video", frame)
cv2.imshow("mask", f)
if cv2.waitKey(25) == 27:
break
video.release()
cv2.destroyAllWindows()
更新 源视频: Link
【问题讨论】:
-
单独分享图片,同时分享纯背景,对于想试试你的代码的人来说会更好
-
请查看使用 HSV 颜色空间的颜色阈值。
-
@YunusTemurlenk 我应该上传我的测试视频吗?这是带有绿屏背景的简单视频,我需要使其透明。