广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用使用python+opencv解析视频并处理视频中的水印
  • 559
分享到

如何使用使用python+opencv解析视频并处理视频中的水印

2023-06-02 03:06:18 559人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“如何使用使用python+OpenCV解析视频并处理视频中的水印”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用使用Python+opencv解析视频并处理视频中的水印”

本篇内容主要讲解“如何使用使用python+OpenCV解析视频并处理视频中的水印”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用使用Python+opencv解析视频并处理视频中的水印”吧!

  1. 使用python+opencv解析视频

  使用opencv进行视频解析,获取每一帧图像后需要对该帧图像进行模块匹配进行水印图像查询。

  (对多个视频操作,查询到水印的视频存储到list中等待下一步处理,未查询到的视频存储到失败list中)

  logger.info('开始进行视频图像处理...')

  watermark_path = "G:\\video\\watermark\\test.png"

  video_path = "G:\\video\\video.mp4"

  video = cv2.VideoCapture(video_path)

  index = 0

  success, frame = video.read()

  while success:

  logger.info('开始进行每一帧图像处理!')

  // 通过opencv中模块匹配进行判断该帧是否存在水印

  result = self.find_watermark(frame, watermark_path)

  if result == 1:

  self.deal_list.append(watermark_path, video_path)

  video.release()

  logger.info('视频匹配成功!跳出循环!')

  return True

  if index == 600:

  logger.error('600帧均未找到视频水印!' + "路径:" + str(video_path))

  video.release()

  return False

  success, frame = video.read()

  index = index + 1

  self.no_watermark_list.append(video_info)

  logger.error('视频处理失败!没有找到帧图像!' + str(success) + "路径:" + str(video_path))

  2. 使用opencv+numpy查询水印

  logger.info('开始进行帧图像模块匹配...')

  template = cv2.imread(watermark_path)

  // 进行模块匹配

  res = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)

  // 指定一个阈值

  threshold = 0.8

  // 将匹配区域的坐标存储在numpy数组

  loc = np.where(res >= threshold)

  x = loc[0]

  y = loc[1]

  if len(x) and len(y):

  for pt in zip(*loc[::-1]):

  // 存储找到水印的坐标方便FFmpeg进行水印去除操作

  self.watermark_index_left = pt[0]

  self.watermark_index_top = pt[1]

  logger.info('帧图像模块匹配成功!left:' + str(pt[0]) + ",top:" + str(pt[1]))

  return True

  else:

  logger.error('帧图像模块匹配失败!继续重试!')

  return False

  3. 使用ffmpeg处理视频中水印

  ffmpeg需要在本地环境安装,windows安装自行搜索,安装后需配置环境变量!

  logger.info('ffmpeg开始处理单个视频水印... 视频路径:' + video_path)

  try:

  // ffmpeg中去除水印,需要提供视频路径,水印在视频中坐标以及水印宽高

  text = 'ffmpeg -i \"%s\" -vf "deloGo=x=%s:y=%s:w=%s:h=%s:show=0" -c:a copy \"%s\" -y' % (

  video_path, watermark_left, watermark_top, watermark_width, watermark_height, out_video_path)

  res = os.system(text)

  if res != 0:

  self.no_watermark_list.append(video_path)

  logger.error('ffmpeg处理单个视频水印失败! 视频路径:' + video_path)

  return False

  logger.info('ffmpeg处理单个视频水印成功! 视频路径:' + video_path)

  return True

  except Exception as e:

  logger.error('ffmpeg处理单个视频水印出现异常! 视频路径:' + video_path + ";异常原因:" + str(e))

  self.no_watermark_list.append(video_path)

  return False无锡妇科医院哪家好 Http://www.xasgfk.cn/

  4. 使用tkinter构建图形界面

  该处代码不全,具体创建,可参考其他文章

  self.OpenLabel = Label(self, text="视频路径:")

  self.OpenLabel.grid(row=0, column=0)

  self.OpenEntry = Entry(self, textvariable=self.openVideoPath, width=45)

  self.OpenEntry.grid(row=0, column=1)

  self.OpenButton = Button(self, text="选择视频路径", command=self.selectOpenVideoPath)

  self.OpenButton.grid(row=0, column=2)

  self.OpenMarkLabel = Label(self, text="水印路径:")

  self.OpenMarkLabel.grid(row=1, column=0)

  self.OpenMarkEntry = Entry(self, textvariable=self.openMarkPath, width=45)

  self.OpenMarkEntry.grid(row=1, column=1)

  self.OpenMarkButton = Button(self, text="选择水印路径", command=self.selectOpenMarkPath)

  self.OpenMarkButton.grid(row=1, column=2)

  5. 使用pyinstaller打包应用

  安装pyinstaller : pip install pyinstaller

  进入python环境的Lib中找到pyinstaller,在该目录下运行cmd,执行以下命令

  pyinstaller.exe -D -w --add-binary C:\Users\wjz\Anaconda3\envs\spiderTest\Lib\site-packages\cv2\opencv_ffmpeg410_64.dll;. E:\video\pyexe.py

  说明:

  1)-D 指的是生成结果是一个目录,各种第三方依赖、资源和exe同时存储在该目录

  2)-w 指的是不生成黑窗口,直接显示图形化界面

  3)–add-binary 后面是opencv的dll文件路径,如果不加可能生成的opencv版本出现问题

  4)最后指定要打包的py文件路径

  执行后会生成三个文件build,dist,pyexe.spec(指定文件名),主程序pyexe.exe入口在dist文件夹中

  找到exe文件执行即可

到此,相信大家对“如何使用使用python+opencv解析视频并处理视频中的水印”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何使用使用python+opencv解析视频并处理视频中的水印

本文链接: https://www.lsjlt.com/news/228633.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用使用python+opencv解析视频并处理视频中的水印
    本篇内容主要讲解“如何使用使用python+opencv解析视频并处理视频中的水印”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用使用python+opencv解析视频并处理视频中的水印”...
    99+
    2023-06-02
  • 如何使用Python下载抖音无水印视频
    这篇文章主要介绍如何使用Python下载抖音无水印视频,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、获取抖音视频连接得到如下信息: “5.1 HV:/ 守门员戴手套没法系鞋带这种体育精神,值得尊敬%遇见足球 %足...
    99+
    2023-06-15
  • 如何使用Python的OpenCV库处理图像和视频
    目录介绍计算机视觉OpenCV应用:安装使用 OpenCV 处理图像1. 从文件中读取图像2. 调整图像大小:3. 旋转图像4. 翻转图像:5. 重写图像6. 裁剪图像7. 绘制形状...
    99+
    2022-11-11
  • 如何使用FFmpeg视频处理
    这篇文章给大家分享的是有关如何使用FFmpeg视频处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。FFmpeg 是视频处理最常用的开源软件。它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube...
    99+
    2023-06-26
  • 如何使用python opencv库玩转视频帧率
    这篇“如何使用python opencv库玩转视频帧率”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用pyt...
    99+
    2023-06-30
  • 如何在JAVA中使用ffmepg处理视频
    如何在JAVA中使用ffmepg处理视频?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。FFmepg安装路径:然后在使用的类中生命一个全局变量就好 pr...
    99+
    2023-06-15
  • 如何使用PHP进行视频处理?
    随着网络技术的飞速发展,视频已经成为人们日常生活中不可或缺的一部分。在这个数字时代,如何使用PHP进行视频处理已经成为了一个热门话题,本文将介绍PHP的一些基本功能和工具,以帮助大家更好地处理视频。一、认识PHPPHP是一种高级程序设计语言...
    99+
    2023-05-22
    PHP 视频处理 多媒体应用
  • OpenCV如何使用BSM统计视频中移动的对象
    本文小编为大家详细介绍“OpenCV如何使用BSM统计视频中移动的对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“OpenCV如何使用BSM统计视频中移动的对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1...
    99+
    2023-07-05
  • 如何使用PHP进行视频文件处理?
    视频文件处理是现代网络应用程序中必不可少的一部分,它包括裁剪、压缩、转码、添加水印和合并等操作。PHP 作为一种流行的服务器端编程语言,可以用于处理这些要求。在本文中,我们将介绍如何使用 PHP 处理视频文件。安装 FFMPEG 库FFMP...
    99+
    2023-05-14
    PHP 视频文件处理 处理技巧
  • 怎么在python中使用moviepy对视频进行处理
    本篇文章为大家展示了怎么在python中使用moviepy对视频进行处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研...
    99+
    2023-06-08
  • 如何使用 JavaScript object URLs进行图像音频和视频的处理
    本篇文章为大家展示了如何使用 JavaScript object URLs进行图像音频和视频的处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。许多Web应用程序需...
    99+
    2022-10-19
  • JAVA使用ffmepg处理视频的方法(压缩,分片,合并)
    FFmepg安装 路径: 然后在使用的类中生命一个全局变量就好 private static String ffmpegPath = "C:\\hk\\ffmpeg\\bi...
    99+
    2022-11-12
  • 如何使用Python实现视频去重的小工具
    同级目录下新建dup_videoimport json import os import shutil import cv2 import imagehash from PIL import Image from loguru impor...
    99+
    2023-05-14
    Python
  • Python:使用爬虫抓取网页中的视频并下载(完整源码)
    Python:使用爬虫抓取网页中的视频并下载(完整源码) 在今天的程序开发世界中,网站是不可或缺的一部分。人们使用网站来获取有用的信息、购买商品和娱乐自己。这些网站的内容通常包含了各种类型的文件,其中...
    99+
    2023-08-31
    python 爬虫 音视频
  • 如何使用Python解决视频剪辑重复性工作问题
    小编给大家分享一下如何使用Python解决视频剪辑重复性工作问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!01 安装对视频进行批量剪辑,需要三个库,分别是Moviepy库和Pathlib库,还有Tkinter库。首先我...
    99+
    2023-06-22
  • 教你如何使用Python下载B站视频的详细教程
    前言 众所周知,网页版的B站无法下载视频,然本人喜欢经常在B站学习,奈何没有网时,无法观看视频资源,手机下载后屏幕太小又不想看,遂写此程序以解决此问题 步骤 话不多说,进入正题 1....
    99+
    2022-11-12
  • 如何使用python爬取B站排行榜Top100的视频数据
    记得收藏呀!!! 1、第三方库导入 from bs4 import BeautifulSoup # 解析网页 import re # 正则表达式,进行文字匹配 import ...
    99+
    2022-11-12
  • 如何使用Python+selenium实现趣头条的视频自动上传与发布
    这篇文章主要为大家展示了“如何使用Python+selenium实现趣头条的视频自动上传与发布”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Python+selenium实现趣头条的视频...
    99+
    2023-06-22
  • 如何使用Python中的数据分析库和可视化工具对大规模数据进行处理和展示
    如何使用Python中的数据分析库和可视化工具对大规模数据进行处理和展示,需要具体代码示例数据分析和可视化是现代科学和商业决策的关键工具。Python是一种功能强大且易于使用的编程语言,具有丰富的数据分析库和可视化工具,如NumPy、Pan...
    99+
    2023-10-22
    可视化 Python 数据分析
  • 如何使用Python中的数据分析库进行数据处理
    如何使用Python中的数据分析库进行数据处理人们越来越重视数据处理和分析的重要性。随着电子设备的不断普及和互联网的发展,我们每天都会产生大量的数据。要从这些海量的数据中提取有用的信息和洞察,就需要使用强大的工具和技术。Python作为一种...
    99+
    2023-10-22
    Python 数据分析 数据处理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作