文章目录

  • 前言
  • 一、代码实现
  • 二、结果展示

前言

模式识别视觉基础(视频处理知识) OpenCV应用
python 3.6+
安装组件
pip install matplotlib numpy opencv-python pillow

要求:
从网上下载或自己手机录制一段视频(>30秒),第0-5秒显示一句话的字幕,第6-15秒显示另一句话的字幕。
第20秒开始从屏幕中心出现一个光点,发出眩光,逐渐扩大覆盖的整个屏幕(类似太阳),最后光点缩小复原,整个过程10秒。


一、代码实现

import cv2
import math
import numpy as nporg_video = "Screen-univers.mp4"
sub_video = "Screenrecorder_U.mp4"# Define the codec and create VideoWriter object
cap = cv2.VideoCapture(org_video)  # 读取视频
fps_video = cap.get(cv2.CAP_PROP_FPS)# 获取视频帧率
fourcc = cv2.VideoWriter_fourcc(*"mp4v")# 设置写入视频的编码格式
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))# 获取视频宽度
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))# 获取视频高度
videoWriter = cv2.VideoWriter(sub_video, fourcc, fps_video, (width, height))#保存视频text1='The scenery is infinitely good'
text2='And things need to be done early !'def show_text(img,text,word_x):word_y = int(height) - 80position=(word_x, word_y)font=cv2.FONT_HERSHEY_SIMPLEXfont_size= 3color=(0, 0, 255)A = 3return cv2.putText(img, text, position, font, font_size, color, A)def show_glare(img,time,count):# 设置中心点centerX = height / 2centerY = width / 2radius = int(((height/2)/time)*count)# 设置光照强度strength = 200# 图像光照特效for i in range(height):for j in range(width):# 计算当前点到光照中心距离(平面坐标系中两点之间的距离)distance = math.pow((centerY - j), 2) + math.pow((centerX - i), 2)# 获取原始图像B = img[i, j][0]G = img[i, j][1]R = img[i, j][2]if (distance < radius * radius):# 按照距离大小计算增强的光照值result = (int)(strength * (1.0 - math.sqrt(distance) / radius))B = img[i, j][0] + resultG = img[i, j][1] + resultR = img[i, j][2] + result# 判断边界 防止越界B = min(255, max(0, B))G = min(255, max(0, G))R = min(255, max(0, R))img[i, j] = np.uint8((B, G, R))else:img[i, j] = np.uint8((B, G, R))glare_time = int(fps_video*5)-1
glare_count = 0
frame_id = 0
while (cap.isOpened()):ret, frame = cap.read()if ret == True:frame_id +=1time_s = int(frame_id / fps_video)if (0 < time_s <= 5):show_text(frame,text1,500)elif (6 < time_s <= 15):show_text(frame,text2,350)elif (20 < time_s <= 25):glare_count += 1show_glare(frame,glare_time,glare_count)elif (25 < time_s <= 30):glare_count -= 1show_glare(frame,glare_time,glare_count)videoWriter.write(frame)else:break# Release everything if job is finished
cap.release()
videoWriter.release()
cv2.destroyAllWindows()

二、结果展示




参考链接:

https://blog.csdn.net/weixin_45861496/article/details/124224815?spm=1001.2014.3001.5502

opencv给视频加字幕加炫光相关推荐

  1. html照片怎么用作背景音乐,怎么把图片做成视频加字幕加音频 怎么把图片做成视频有背景音乐和文字说明...

    在现如今来说,把图片制作成视频已经不是什么新鲜事了,但却是个经久不衰的永恒,因为制作好了的视频有很好的纪念价值,这一意义就足矣.这个把图片成视频也还是需要花些心思.花些精力才能做得效果好的哦.下面一起 ...

  2. 电脑工具栏怎么调整到下面_抖音怎么加字幕?如何制作短视频?

    抖音目前已经可以加字幕了,那么怎么给抖音的视频加上酷炫的字幕呢?下面小编就跟大家分享一下怎么添加抖音字幕吧以及平日里都是怎么制作短视频的 抖音怎么加字幕? 首先我们要有一款编辑视频的app.最好是专业 ...

  3. 如何在EDUIS中导出ETL字幕模板_给视频加字幕?这8个工具助力你的短视频创作!...

    来源:一周进步 · 安哥拉随着短视频的兴起,不少人转向了视频内容的创作.除去视频内容本身,为了给用户更好的观看体验,有些人会为视频添加字幕,方便用户在不同场景下观看视频.今天的文章,我想为你介绍 8 ...

  4. 如何使用格式工厂将vtt文件格式字幕加在视频文件中

    如何使用格式工厂将vtt文件格式字幕加在视频文件中 可以直接看 第三步-整合流程 一,字幕格式 现在比较流行的字幕格式,分为图形格式和文本格式两类. 图形格式字幕由 idx 和 sub 文件组成,id ...

  5. 给视频加字幕HTML代码,一键添加字幕的软件推荐,几分钟学会给短视频加字幕,自媒体人都在用...

    很多人觉得给短视频加字幕很辛苦? 今天给大家介绍几款给短视频添加字幕用到的软件. 1.字幕通: 字幕通是一款全新模式的智能视频翻译软件,将繁琐的视频字幕翻译制作工作最大程度的便捷化,成功实现从切分时间 ...

  6. android手机拍摄视频格式,怎么用手机给自己拍摄的视频加上字幕?安卓手机视频编辑器给视频加字幕的方法...

    狸窝是帮助用户解决问题 提供教程解决方案 在这个过程中有使用我们自己开发的软件 也有网上找的工具 只要帮助用户解决问题就好!同意即往下继续了解下载 ... 我们知道,平时看电影或者是电视的时候,都会有 ...

  7. html+视频添加字幕,给视频加滚动字幕,给视频加字幕制作mv 录制的视频配背景音乐...

    给视频添加滚动字幕方法其实很简单,像我们下载的电影,歌曲,用手机录制的视频都可以加字幕,或者滚动字幕,也可以加背景音乐或其它声音,给视频开头或结尾加一张图片或多张图片等等都是可以实现的,而这一切都是那 ...

  8. 给视频加字幕用什么软件简单?分享3个简单好用的软件

    大家平时在制作视频的时候,会不会为视频字幕而烦恼呢?毕竟,每个视频作品,在后期制作的时候,字幕的添加是一个不可缺少的环节.如果缺少的字幕或是字幕加的不好,那可能会影响整个视频的观感.那么你们知道视频添 ...

  9. android视频添加字幕,视频加字幕手机app

    视频加字幕手机app是一款为用户朋友们打造的视频制作神器,这款视频加字幕手机能够帮助用户朋友们剪辑视频,同时它还支持很多的视频编辑功能,使用起来很简单,用户朋友们快来下载使用吧! 视频加字幕手机app ...

  10. mac自动给视频加字幕(ffmpeg,autosub)

    mac python3.8 自动给视频加字幕(ffmpeg,autosub实现) 安装ffmpeg 安装autosub 网课没字幕听起来不习惯,所以尝试给mp4视频文件加上字幕,内容参考了不同教程进行 ...

最新文章

  1. 英文文献中的数学符号
  2. Linux入门(9)——Ubuntu16.04安装flash player
  3. 为什么手机网速太慢_为什么手机信号满格,网速却很慢?终于知道为啥了
  4. you do not have permission
  5. Yarn 资源调度框架
  6. 计算机语言python发音_Python如何像scratch一样朗读文字?
  7. 08 事务到底是隔离的还是不隔离的?(转)
  8. 深度学习笔记(39) Anchor Boxes
  9. Linux下载工具wget详解
  10. 集群提交HBase代码报错:Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguratio
  11. linux RAC 安装失败完全卸载
  12. 基于ggplot2网络可视化(二)
  13. 计算机c盘删除的文件怎么找回,C盘空间不足怎么办 删除C盘文件教程【详解】...
  14. PHP 接收 UDP包_常用的抓包工具包含电脑端及手机端
  15. 如何规避rm-rf导致的服务器删除问题
  16. Pdf格式文件怎么修改
  17. 图形化开发(五)042-Three.js之Camera相机——正交相机和透视相机的对比
  18. 贪吃蛇游戏 c++代码 ↑,↓,→,←分别控制蛇的方向 增加蛇长 随机生成食物 吃食物 吃撞墙 撞到自己
  19. 【微信辅助】疫情当前,python帮你找出朋友圈的武汉朋友给予关怀
  20. WorkBench简介

热门文章

  1. php+redis+保存多个值,php向redis list一次性lPush多个值
  2. 技术公众号怎样运营?
  3. 计算机网络无法连接共享打印机驱动,Windows 10 安装网络共享打印机失败,提示0x00009c4a 无法连接到打印机解决办法...
  4. 走楼梯c语言程序,动态规划走楼梯
  5. 大学毕业后拉开差距的真正原因--写给将要毕业的自己
  6. 小 Mil 来了!Milvus 智能问答机器人上线
  7. linux 显示数字权限,Linux数字权限解释
  8. 深度解读央行数字货币 DCEP
  9. Python requests练习:爬取猫眼电影排行
  10. Excel单元格设置选择项