如何从python上的绿屏视频中删除绿色?

时间:2015-08-24 21:14:49

标签: python video

我正在做一个项目,我试图在python的视频上取出绿屏,但我不知道如何去做。 谢谢!

1 个答案:

答案 0 :(得分:2)

好吧......我猜你每帧视频都有某种RGB图像。 即一个N乘3阵列。 (您可以使用OpenCV来读取每个帧。)

因此,需要浏览图像并查找所有绿色并将其替换为您想要的内容。 例如,如果数组被调用arr,那么对于每一行i,您将检查是否arr[i] == [0,255,0]

但由于电影的性质,你不会有一个完美统一的0,255,0绿色。会有阴影和其他轻微的变化。也许它开始时甚至不是0,255,0。

因此,您将考虑去除一系列颜色。现在,对于每一行,我们都在搜索一系列颜色,并根据您的选择进行替换。

我们现在冒着识别我们不想删除的移除颜色的风险......所以我们如何检查... 我们仍然可能无法在边缘(我们想要保留在图像中的物体/人物)之间获得完美匹配,所以为了使这不太明显,我们可能想要使用一点点模糊等等等等。

观看此视频:https://www.youtube.com/watch?v=rIWoLCFvjME

尝试考虑用户所采用的每个小步骤需要哪些逻辑代码。 还要考虑用户做出的所有纯粹主观的决定。显然,这些将无法可靠地实现自动化。所以现在我们讨论的是某种交互式应用程序,它允许用户根据主观选择选择不同的动作。

我们很快就会看到为什么绿色屏幕经常被手动删除,使用强大的编辑应用程序(如photoshop,后效果等)逐帧删除...

OpenCV(http://opencv-python-tutroals.readthedocs.org/en/latest/)将为您完成很多算法......几乎可以构建您的交互式绿屏删除软件......