python_给视频打马赛克

背景说明:据我了解,视频处理常用的是moviepy,而cv2更多则是用于图像处理,音频需单独处理;本文就是将两者进行结合使用,实现对视频打马赛克。众所周知,使用moviepy对视频进行打马时,大多数的教程都是用 mp.ImageClip 或者 mp.ColorClip 给视频加一个遮罩处理的,效果并不理想(如下图);

实现打马后效果展示

代码说明

import moviepy.editor as mp
import cv2#对视频的某一帧进行打码,并返回打码后的图片
def do_mosaic(frame, x, y, w, h, neighbor=5):"""马赛克原理: 将图像上某个像素点一定邻域内的所有点用邻域内左上像素点的颜色代替,这样模糊细节的同时可以保留大致的轮廓。(也可以考虑将每一帧的图片指定区域的像素点进行随机打乱处理):param frame: opencv frame:param int x:  马赛克左顶点x值(这几个参数可以参考下面的示意图) :param int y:  马赛克左顶点y值:param int w:  马赛克的宽度值:param int h:  马赛克的高度值:param int neighbor:  马赛克每一块的宽"""for i in range(0, h - neighbor, neighbor):for j in range(0, w - neighbor, neighbor):rect = [j + x, i + y]# 其中一个点的RGB值color = frame[rect[1]][rect[0]].tolist()left_up = (rect[0], rect[1])right_down = (rect[0] + neighbor - 1, rect[1] + neighbor - 1)  cv2.rectangle(frame, left_up, right_down, color, -1)return frame# 处理视频中的每一帧图片
def scroll(get_frame, t):# 获取每一帧图片frame = get_frame(t)# 提取视频的宽和高fh, fw = frame.shape[0], frame.shape[1]# 马赛克的区域(视频的右上角) fh:视频的高度,fw视频的宽度(可以参考下面示意图)x = int(fw * 0.75)y = 0w = int(fh * 0.25)h = int(fw * 0.1)frame_region = do_mosaic(frame, x, y, w, h, neighbor=5)return frame_region# 视频处理
def video_processing(path_src, path_save):''':param path_src::param path_save::return:'''# 读取视频video = mp.VideoFileClip(path_src).subclip(5, -5)  # 减去视频的前后各5s# 对每一帧进行打码,video_new = video.fl(scroll)# 视频导出video_new.write_videofile(path_save)print("导出成功")# 释放内存video_new.close()if __name__ == '__main__':# 处理前的视频文件路径path1 = './src.mp4'# 处理后保存的文件路径path2 = './output.mp4'# 处理视频video_processing(path1, path2)
示意图

python_给视频打马赛克相关推荐

  1. FFMPEG使用 frei0r 给视频添加马赛克效果

    最近群里有伙伴给出一条命令 ffplay -i xx.mp4 -vf "frei0r=pixeliz0r:0.02|0.02" 想要给视频添加马赛克,  当时遇到问题 没有找到 f ...

  2. 视频产生马赛克和黑屏的原因- -

    视频产生马赛克和黑屏的原因- - 主要有两个原因,一是没有同步到i帧,无法解码:二是码率超出,解码器缓存溢出. 现在PUSH模式下TS流媒体播放器,出现马赛克.待解....

  3. python怎么导入视频-python 给视频添加马赛克

    用法: 1. 创建空文件夹:imgs 2. 将倒数第三行中的"222056.mov"改为你的视频路径,如:"a.mov" 3. 运行以下代码 4. 稍等片刻,鼠 ...

  4. opencv给视频打马赛克

    本文转至:opencv马赛克python实现 代码: import cv2 import time cap = cv2.VideoCapture("test.mp4") path ...

  5. python去除视频马赛克_python 给视频添加马赛克

    用法: 1. 创建空文件夹:imgs 2. 将倒数第三行中的"222056.mov"改为你的视频路径,如:"a.mov" 3. 运行以下代码 4. 稍等片刻,鼠 ...

  6. 赛效:如何在线给视频打马赛克

    1:打开快剪辑网页版,登录自己的账号,点击AI工具里的"视频打码". 2:点击上传本地视频文件. 3:选择马赛克区域,然后点击右下角"开始去除". 4:稍等片刻 ...

  7. 视频加入马赛克_会声会影篇

    在视频中经常看到一些人物为了不被认出,对这些人物做一些技术处理,给脸部添加马赛克,并跟踪脸部的移动.下面看下怎么用会声会影X2做出这个效果. 1.添加视频到视频轨和覆叠轨 首先启动会声会影,选择&qu ...

  8. 摄像头视频推流python_摄像头视频推流装置及方法与流程

    本发明涉及视频推流技术领域,尤其涉及一种摄像头视频推流装置及方法. 背景技术: 在机器人领域,USB摄像头使用范围很广泛.USB摄像头安装于机器人本体,其采集的视频流需要推送到上位机或者云端. 对于l ...

  9. 马赛克 拼图 python_使用Python的马赛克艺术。

    马赛克 拼图 python In my previous article, I have explored an interesting format of representing images c ...

最新文章

  1. vue 企业发展历程动画_「咻动画」企业宣传片可以在哪些方面应用?
  2. ubuntu12.04 更新内核
  3. Pandas打印所有行和列(显示所有的行和列)
  4. 深度网络pre-train对于深度网络的意义
  5. HDU 4109 Instrction Arrangement
  6. WPF 用代码实现WrapPanel右侧自动对齐(解决多余空白问题)
  7. 产品经理和开发打起来了
  8. 将TreeView中导出为XML数据
  9. Java知多少(76)语言包(java.lang)简介
  10. linux系统之间互传文件
  11. 怎样用计算机制作思维导图,如何使用电脑制作成思维导图,这个方法简单又实在...
  12. Windows 微软雅黑(Microsoft YaHei)+ Monaco 字体整合方案
  13. 基因组变异类型详解及区分
  14. 基于python-实现仿天眼查-企查查-完整源码
  15. CSS基础教程 -- 媒体查询屏幕适配
  16. C语言期末复习不挂科(快速入门)(和bug郭一起学C系列1)
  17. 极客日报第131期:华为将正式发布鸿蒙手机操作系统;清华成立量子信息班;美团:外卖是微利业务,直接降低抽成无法持续
  18. 京东商城开通英文网站 开拓西方市场
  19. select option
  20. java中常用的时间格式yyyy-MM-dd'T'HH:mm:ss.SSSZ

热门文章

  1. 手机有线投屏到Windows电脑
  2. 前端开发思想及建议--整理
  3. css首行缩进字符间距行高_黑暗代码风格的学院:换行,间距和缩进
  4. 遇到网页无法复制文本怎么办,程序员来教你一键解锁,不需要任何软件和插件
  5. spring boot 运行提示:Process finished with exit code 1
  6. Tableau 网站流量分析案例之浏览量分析(二)
  7. 【Docker之Swarm详细讲解Swarm集群搭建管理节点工作节点Raft一致性协议overlay网络Docker结合Swarm部署WordPress个人博客实战】
  8. (27)Verilog实现倍频【方法四】
  9. 系统性能优化策略 -- 持续优化更新
  10. offer different kinds of LED lights