☞ ░ 前往老猿Python博文目录 ░
一、引言
对于带Logo(如抖音Logo、电视台标)的视频,有三种方案进行Logo消除:
- 直接将对应区域用对应图像替换;
- 直接将对应区域模糊化;
- 通过变换将要去除部分进行填充。
其中:
方法1又可以使用三种方法,一是使用某固定图像替换、二是截取视频某帧的一部分图像替换、三是用每帧固定区域的图像替换当前帧的Logo区域,其中固定图像替换最简单,下面就不展开介绍;截取视频某帧的一部分图像比较简单,用每帧固定区域的图像替换当前帧的Logo区域最复杂;
方法2可以认为是方法3的特例,即填充值来源于简单计算,如Logo区域像素的均值等,我们在此不进行介绍。
方法3是以Logo去除后根据原Logo区域附近的图像像素对Logo区域进行插值填充,以确保填充后的图像整体比较协调、完整。
二、需要解决的问题
- 怎么确认Logo区域?当然是使用鼠标选择确认Logo区域最方便;
- 使用图像去替换Logo区域时,在鼠标选择过程中怎么确保替换图像大小与被替换图像大小一致?这个需有将替换图像进行裁剪或填充;
- 通过变换将要去除部分进行填充时,怎么确保填充值与整体视频比较协调?本文采用根据Logo邻近像素进行插值填充
- 对于抖音这种在晃动的Logo怎么修复?老猿采用多次取样Logo区域来修复。
三、背景知识
3.1、OpenCV视频预览方法
可以通过cv2.imshow(winname, i