引言
在本文中,我们将学习如何使用 python 在视频中渲染响应式文本,我们将使用 opencv 这个包,这是一个非常全面的计算机视觉处理库,会给我们的视频图像处理带来极大的便利。现在,让我们通过 pip 来进行安装。
pip install opencv-python
在我们需要使用 opencv 的时候,就可以像下面这样来引用。
import cv2
现在让我们进入下一步,选择一个视频并导入到程序中。
第一步 —— 导入视频
这将是一个简单的步骤。我们将做两件事: 导入一个视频和找到视频的帧速率。我们将使用帧速率来计算视频中的秒数,这样我们就可以计算不同文本的渲染时间。
我们使用 VideoCapture 方法导入视频。
tree_video = cv2.VideoCapture('tree.mov')
现在我们来计算导入视频的帧速率。
fps = tree_video.get(cv2.CAP_PROP_FPS)``print(fps)``#result``23.97
23.97!这意味着视频基本上每秒运行24帧,所以24次循环相当于1秒的视频。
第二步 —— 读取文本文档
在这一步中,我们将从文本文档中读取文本。我们将使用 open 函数,它是 Python 附带的一个内置函数。下面是我将要导入的文本文档的屏幕截图。
确保每个句子都在新的一行上。在读取文本文档时,我们将把每一行转换为一个列表项。
poem = open('under_the_giant_tree.txt')``poem_lines = list(poem)``print(poem_lines)
第三步 —— 响应式文字功能
在这一步中,我们将编写一个用于更新文本的函数。我决定根据不同的时间戳更新文本,但是可以随意更改为不同的情况。
frame_ = 0``def text_update(frame_):` `if frames_ < (5*fps):` `text = str(poem_lines[2])` `elif frames_ < (10*fps):` `text = str(poem_lines[4])` `elif frames_ < (15*fps):` `text = str(poem_lines[6])` `elif frames_ < (20*fps):` `text = str(poem_lines[8])` `else:` `text = "no text found"` `return text
使用 if-else 来确定正在播放的视频的时间戳。
定义一个名为“frame_”的新变量来传入视频帧。这样可以以秒为单位计算持续时间。我们已经知道从第一步开始的每秒帧数,即24帧每秒。在这个函数中,文本将每五秒更新一次。我将诗的行分配给 text 变量。
现在,让我们进入最后一步。
最后一步 —— 渲染视频
太好了!我们快完成了。在最后一步,我们将把迄今为止所做的一切结合起来。我们将使用 while 循环来触发程序。我们可以使用“ escape”或“ q”键结束循环。
while(True):``ret, frame = tree_video.read()``font = cv2.FONT_HERSHEY_SIMPLEX``on_video_text = text_update(frame_)` ` cv2.putText(frame, on_video_text, (50, 50), font, 1, (0, 255, 255),` `2, cv2.LINE_4)``frame_ = frame_ + 1``cv2.imshow('poem on video', frame)``if cv2.waitKey(1) & 0xFF == ord('q'):` `break``tree_video.release()``cv2.destroyAllWindows()
那么上面的代码中发生了什么:
· 我们首先从读取视频开始的。
· 然后定义我们想要用于文本的字体。
· 然后使用 text_update 来更新文本。
· 使用 putText 方法添加视频响应文本。
· 使用 imshow 方法显示视频。
下面是我运行程序后的截图:
总结
恭喜!我们已经学习了如何使用 Python 在视频上呈现可更新的响应文本。我希望你喜欢这个实际操作的计算机视觉项目。参与实际的编程项目是提高编程技能的最好方法。
· END ·
HAPPY LIFE
题外话
当下这个大数据时代不掌握一门编程语言怎么跟的上时代呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
若有侵权,请联系删除