本文建议阅读时间 8 分钟
在日常调试代码时,经常需要在视频中添加一些文字说明。下面将使用 Python 的 OpenCV 和 PIL 库来实现对视频添加文字的功能。
对于视频中添加的文字,字体可以根据个人喜好选择。使用 Windows 系统的用户可以在 C:\Windows\Fonts 目录下找到更多字体,复制到程序所在目录即可使用。
Windows 中的字体
以下是实现代码,语言为 Python,运行次数为 0:
立即学习“Python免费学习笔记(深入)”;
import cv2
from PIL import Image, ImageDraw, ImageFont
import numpy as np
<h1>读取视频</h1><p>cap = cv2.VideoCapture('video.avi')</p><h1>定义编解码器并创建 VideoWriter 对象</h1><p>fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640,360)) # 设置输出视频参数</p><p>while cap.isOpened():
ret, frame = cap.read()
if ret == True:</p><h1>在 frame 上显示一些信息</h1><pre class="brush:php;toolbar:false;"><pre class="brush:php;toolbar:false;"> img_PIL = Image.fromarray(frame[..., ::-1]) # 转换为 array
font = ImageFont.truetype('STZHONGS.TTF', 40) # 设置字体,Windows系统可以在 "C:\Windows\Fonts" 下查找
text1 = "机器视觉CV"
text2 = "目标检测DEMO"
for i, te in enumerate(text1):
position = (50, 20+i*50)
draw = ImageDraw.Draw(img_PIL)
draw.text(position, te, font=font, fill=(255,0,0))
for i, te in enumerate(text2):
position = (520, 10+i*40)
draw = ImageDraw.Draw(img_PIL)
draw.text(position, te, font=font, fill=(255,0,0))
frame = cv2.cvtColor(np.asarray(img_PIL), cv2.COLOR_RGB2BGR)
# 写入帧
cv2.imshow('frame', frame)
out.write(frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
breakcap.release() out.release() cv2.destroyAllWindows()
实现效果如下:
视频截图
以上就是【小技巧】用Python给你的视频添加字幕的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号