使用 OpenCV 的 imread() 函数读取一张包含绿幕的图像。要确保图像中的绿幕颜色区别明显,可以使用 imread() 函数的第二个参数来指定颜色模式,例如:cv2.IMREAD_COLOR。
转换颜色空间
使用 OpenCV 的 cvtColor() 函数将图像从 BGR 颜色空间转换为 HSV 颜色空间。这是因为 HSV 颜色空间比 BGR 更适合处理颜色。将绿幕颜色的范围设置为特定的 HSV 值。这可以使用 inRange() 函数来实现。
使用 bitwise_and() 函数将原始图像与掩码图像进行按位与操作,以生成抠图。掩码图像可以使用 inRange() 函数来生成。
使用 OpenCV 的 imshow() 函数显示生成的抠图。
下面是一个 Python 代码示例,演示了如何使用 OpenCV 进行绿幕抠图:
import cv2
img = cv2.imread("greenscreen.jpg", cv2.IMREAD_COLOR)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower_green = (29, 86, 6)
upper_green = (64, 255, 255)
mask = cv2.inRange(hsv, lower_green, upper_green)
res = cv2.bitwise_and(img, img, mask=mask)
cv2.imshow("Result", res)
cv2.waitKey(0)
cv2.destroyAllWindows()
这个示例假设原始图像文件名为 "greenscreen.jpg",并且绿幕的颜色范围在 HSV 颜色空间中为 (29, 86, 6) 到 (64, 255, 255)。你可以根据你的实际情况更改这些值。