功能描述:
为视频设置任意形状的遮罩窗口,使得只有这些指定区域中的视频画面可见,指定区域之外的所有画面都变为指定的颜色。
参考代码:
测试视频:这是董付国老师在中国大学MOOC平台的慕课视频片头,完整课程地址为
https://www.icourse163.org/learn/enroll/CCEC-1449771164 http://mpvideo.qpic.cn/0bf24iaauaaagmafpomsqrpfbywdblraacqa.f10002.mp4?dis_k=e6906e2b8fd1b1cc654b583904aa6555&dis_t=1586939306
处理结果: http://mpvideo.qpic.cn/0b78yqaasaaasyagz2msovpfbrgdbhcaacia.f10002.mp4?dis_k=18cd7a98300584eba11ba64e30c6631f&dis_t=1586939306
在上面的代码中,是使用代码来手工定义遮罩形状和位置,不仅麻烦,计算量和代码量也大,实现复杂形状时对程序员要求太高。能不能通过一个图片来定义遮罩呢?答案是肯定的,下面我们来解决这个问题,首先准备一张图片,注意要与视频尺寸相同。
编写代码,读取图像数据,定义白色区域为可见区域,其他背景部分对应视频的不可见区域,然后处理视频中的每一帧图像,
仍使用前面的同一个测试视频,处理结果如下: http://mpvideo.qpic.cn/0bf2rqaa6aaao4affnesorpfbdgdb6gaadya.f10002.mp4?dis_k=e638bb1b16c03b1bb2603ffe2eee121f&dis_t=1586939306