📜  使用 OpenCV- Python替换绿屏

📅  最后修改于: 2022-05-13 01:54:27.243000             🧑  作者: Mango

使用 OpenCV- Python替换绿屏

先决条件: OpenCV Python教程
OpenCV(Open Source Computer Vision)是一个计算机视觉库,包含对图片或视频执行操作的各种功能。该库是跨平台的,可用于多种编程语言,如Python、C++ 等。
VFX 行业使用绿屏去除来改变场景。在这里,我们将使用OpenCV – Python来做同样的事情。

方法:

  1. 导入所有必要的库
  2. 加载图像或视频
  3. 将图像和视频调整为相同大小
  4. 加载绿色的上下BGR值
  5. 应用掩码,然后使用 bitwise_and
  6. 从原始绿屏图像中减去 bitwise_and
  7. 减法后检查矩阵值 0 并将其替换为第二个图像
  8. 你会得到想要的结果。

下面是实现。

Python3
import cv2
import numpy as np
 
video = cv2.VideoCapture("green.mp4")
image = cv2.imread("bg.jpeg")
 
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, image, f)
 
    cv2.imshow("video", frame)
    cv2.imshow("mask", f)
 
    if cv2.waitKey(25) == 27:
        break
 
video.release()
cv2.destroyAllWindows()


输出: