`` 写在最前: 因手中双目摄像头只有HDR可用(IR初始化不成功,推测是硬件异常),因此之前希望设计的立体成像、双目测距等实验无法完成,故设计新的实验《自动绿幕生成摄像》,其基本想法是: 1、拍摄无人背景 2、在无人背景下做各种表演 3、通过比较上述图片,将步骤2中新增的人物取出,放在新场景下,和预先拍摄的背景合成动态图片或视频 硬件: 1、大联大友尚 ON 感光晶片USB双目摄像头 2、树莓派4B 软件环境: 1、操作系统为“raspios-buster”,编译时间2020-05-27。 2、Python 3.7.3
3、CV2 4.3.0 实验方法: 1、找到一面墙作为背景,图像越单纯越好,固定摄像头,连续拍摄几张照片; 2、将拍摄照片叠加处理,以去除噪点; 3、设置一个循环,包括图片拍摄,图片处理等,循环中包括: (1)拍摄照片 (2)与图片对比,形成遮罩效果图片 (3)二值化遮罩效果图片,并做腐蚀和膨胀,去掉因随机原因产生的“小点” (4)将遮罩应用在拍摄的图片上,形成无背景人物图 (5)将人物图叠加在预制背景图片上 (6)显示合成图片 上述过程完成就生成了可在绿幕拍摄的效果。 实操: 1、选择一个gif图片(例如图一),并解析为多个png,这一步可以编程实现,也可以用工具实现,我是使用一个叫做“gifframeextra”的工具实现的,共分解出37幅图。
2、连续拍摄墙壁,例如下图二,可以看到每张图片都有细微差异,这并不要紧,处理一下。
3、编程设置连续拍摄,比如做一个50连拍,代码见附件“savepic”,随便选取一张图片,下图三。
4、将拍摄图片和背景图片混合,形成遮罩,如图四,并将遮罩用于拍摄图片,实现抠图效果,例如下图五。代码见附件“greenmask”。
5、叠加人物图片和背景,合成新图,如图六。
6、将多个新图组合成视频文件,或制作gif,如图七。代码见附件“writeavi”、“writegif”。
7、类似的,也可以选择更换不同风景,比如图八,完全可以做一个88帧环游地球。。。 呜。。。今天30兆用满了,没法传文件了。。。 8、或者在星空中漫步,图九。
心得: 1、光线的选择非常重要,我发现过暗或者过亮,都会影响实际效果,这点在之前的实验中已经确认了,见帖子XXX 2、背景尽可能“素”一点,颜色无所谓,反正最后会被“挖掉”。 3、动作尽可能慢一点,防止画面拖尾,拖尾本身在视频中无所谓,但是图像处理起来很困难。 4、腐蚀和膨胀参数的选择很重要,单次腐蚀也许不能完全腐蚀掉全部噪点,过腐蚀又会造成图片残缺;过度膨胀会带来细节丢失。 5、似乎因为图片压缩的原因,生成的avi文件比gif图片文件大小更小,而且漂亮得多。
最后,请大家给我投票,谢谢! ``
|