利用python OpenCV去除视频水印

 更新时间:2022年02月08日 10:57:48   作者:修炼之路   
这篇文章主要介绍了利用python OpenCV去除视频水印,下面我们将利用视频的某一帧将图片的一些污点去掉,代码先从视频中导出一帧图片,然后统计需要删除按钮的坐标位置,然后再对视频中的每一帧图像做处理的函数,下面操作过程需要的小伙伴可以参考一下

上面的图片展示的是视频中的某一帧,需要将图片中的,实体拓展和退出全屏以及右上角的两个圆圈按钮给删除掉。

解决思路
一个很简单的想法就是,从图片上其它两块背景相同的地方,拷贝两个块替换掉按钮位置的块

用下面的代码先从视频中导出一帧图片,然后统计需要删除按钮的坐标位置

实现代码如下:

import cv2
# 创建读取视频的类
capture = cv2.VideoCapture("watermark.mp4")
# 得到视频的高度
height = capture.get(cv2.CAP_PROP_FRAME_HEIGHT)
# 得到视频的宽度
width = capture.get(cv2.CAP_PROP_FRAME_WIDTH)
# 得到视频的帧数
count = capture.get(cv2.CAP_PROP_FRAME_COUNT)
# 得到视频的帧速
fps = capture.get(cv2.CAP_PROP_FPS)

# 对视频中的每一帧图像做处理的函数
def process_fun(image):
    #去除视频的水印
    #需要注意的是第一个范围是y轴坐标的范围,第二个是x轴坐标的范围
    image[380:511,1070:1212] = image[100:231,1070:1212]
    image[8:63,1111:1275] = image[8:63,800:964]
    return image

#保存MP4的视频
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
# 创建写入视频的类
out_video = cv2.VideoWriter()
out_video.open('processed_video.mp4',fourcc,fps,(int(width), int(height)),True)
while(True):
    # 读取视频中的每一帧
    ret, frame = capture.read()
    # 如果该帧存在则进行操作
    if ret is True:
        # 对输入的每一帧图像处理
        result = process_fun(frame)
        # 保存已经处理后的每一帧图像
        out_video.write(result)
        #cv2.imwrite("precessed.jpg",result)
    # 如果该帧不存在则循环结束
    else:
        break
out_video.release()

注意:上面读取和保存视频的格式是mp4的,如果是avi格式化的视频需要修改VideoWriter_fourcc参数

到此这篇关于利用python OpenCV去除视频水印的文章就介绍到这了,更多相关python OpenCV给视频去除水印内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python装饰器泛化公有和私有属性作用详解

    Python装饰器泛化公有和私有属性作用详解

    这篇文章主要为大家介绍了Python装饰器泛化公有和私有属性作用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • python线程池 ThreadPoolExecutor 的用法示例

    python线程池 ThreadPoolExecutor 的用法示例

    这篇文章主要介绍了python线程池 ThreadPoolExecutor 的用法示例,帮助大家更好得理解和使用python线程池,感兴趣的朋友可以了解下
    2020-10-10
  • python3中SQLMap安装教程

    python3中SQLMap安装教程

    本文主要介绍了python3中SQLMap安装教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 如何在python中实现线性回归

    如何在python中实现线性回归

    这篇文章主要介绍了如何在python中实现线性回归,帮助大家更好的理解和学习Python,感兴趣的朋友可以了解下
    2020-08-08
  • 使用Python实现PDF页面设置操作

    使用Python实现PDF页面设置操作

    这篇文章主要为大家详细介绍了如何使用Python实现PDF页面设置操作,例如旋转页面和调整页面顺序,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • spark: RDD与DataFrame之间的相互转换方法

    spark: RDD与DataFrame之间的相互转换方法

    今天小编就为大家分享一篇spark: RDD与DataFrame之间的相互转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python飞机大战pygame游戏框架搭建操作详解

    python飞机大战pygame游戏框架搭建操作详解

    这篇文章主要介绍了python飞机大战pygame游戏框架搭建操作,设计pygame模块游戏创建、初始化、精灵组设置等相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • Pytorch基础教程之torchserve模型部署解析

    Pytorch基础教程之torchserve模型部署解析

    torchserve是基于netty网络框架实现的,底层使用EpollServerSocketChannel服务进行网络通信,通过epoll多路复用技术实现高并发网络连接处理,这篇文章主要介绍了Pytorch基础教程之torchserve模型部署和推理,需要的朋友可以参考下
    2023-07-07
  • Python量化交易详细简介

    Python量化交易详细简介

    这篇文章主要介绍了Python量化交易详细,  算法交易是使用自动化系统来执行交易,这些交易是通过特定的算法以预测的方式执行的没有任何人为干预。依据数学模型对大数据进行概率分析,使得长期收益期望最大化,下文详细叙述,需要的朋友可以参考一下
    2022-03-03
  • Tensorflow分批量读取数据教程

    Tensorflow分批量读取数据教程

    今天小编就为大家分享一篇Tensorflow分批量读取数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02

最新评论