Video-removal -logo
本代码仓库使用opencv中的图像修复技术来对视频中的每一帧进行修复,从而得到干净去除掉水印的视频,同时保留了视频的音频部分。
Dependent environment
pip install opencv-python
pip install moviepy
pip install pydub
How to remove
1.找到水印的位置,对于视频中logo会出现在相对固定位置的去除方法。比如抖音,快手,logo会出现在视频的左上角或者视频的右下角的时候,我们使用图像处理的基本知识来定位找到水印的位置。
2.读取视频的每一帧图像,创建一个和原图大小的mask,使得找到的水印的标识显现在mask图像中。
3.使用形态学膨胀操作,将找到的logo标识进行膨胀处理。
4.使用opencv中cv.inpant图像修复技术来对图像进行修复,去除logo。
5.处理视频中需要裁剪的视频帧数,并且计算得到裁剪时间,同步裁剪视频的音频文件,对视频中的音频文件进行裁剪处理,减掉片尾。
6.裁剪后的视频和裁剪后的音频进行合成视频,得到去除logo后的视频。
image display

Code usage
1.先执行remove_logo.py文件来去除水印和得到裁剪掉片尾的音频文件。
python remove_logo.py
2.运行Combine-audio-video.py来对去除logo的视频和音频文件进行合并。合并的视频文件保存在save_path文件夹中
python Combine-audio-video.py
The video address after removing the logo
链接:https://pan.baidu.com/s/1jB_-ES_JyIq-Bfu4H82Phg
提取码:hnr9
remove_logo.py如下:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import cv2
import os
import sys
import numpy as np
import math
import time
# 捕获音频
from moviepy.editor import *
from pydub import AudioSegment
from get_crop_time import get_time
'''
1.读取视频
2.读取视频的音频
3.找到视频的切分点
4.对视频进行切分
5.对音频进行切分
6.对视频调用去水印函数
7.去完水印的视频和音频合成
'''
def get_img_mask(im,file):
shape = im.shape
w = shape[1]
h = shape[0]
# print('shape[0]',shape[0])
# print('shape[1]',shape[1])
if int(h) > int(w):
rect = (math.ceil(0.086 * h), math.ceil(0.41 * w)) # (H, W) 水印框大。 图像高宽为720,1280时为(110,300)
# 左上角的位置 (15,15)
pos1 = (math.ceil(0.02 * w), math.ceil(0.011 * h))
# 右下角的位置 (405,1150)
pos2 = (math.ceil(0.5625 * w), math.ceil(0.9 * h))
nim = np.zeros((shape[0], shape[1]), dtype=np.uint8)
st_lt = 0
# x先遍历高,y遍历宽
for x in range(pos1[1], pos1[1] + rect[0]):
for y in range(pos1[0], pos1[0] + rect[1]):
px = im[x, y] # im[0,1] 0代表图像的高,1代表图像的宽
if sum(px) > 640:
nim[x, y] = 255
st_lt = st_lt + 1 # 像素超过一定数量就判定为右下角, 否则水印在左上角
# st_lt = st_lt + 1 # 像素超过一定数量就判定为右下角, 否则水印在左上角
#print('st_lt', st_lt)
# 左上角logo的像素点为三千多,当低于1000个像素的时候,就认
视频去水印技术

最低0.47元/天 解锁文章
2431

被折叠的 条评论
为什么被折叠?



