分享

你的大学为谁负责

 考研竞赛数学 2020-10-09

如何快速、高效、准确地把视频中的一串字幕组合到一帧画面下方

我们经常看到一些分享视频截图的文章中有一些图片下面有一系列的字幕叠加,如下图对于这样的字幕叠加效果,如何快速、自动实现呢?

工具:免费视频播放软件PotPlayer、数学软件Mathematica,直接网络搜索下载安装即可

具体步骤分为两个阶段:

第一阶段:准备图像文件

(1) PotPlayer打开视频,将视频播放位置通过进度条拖放到准备合并字幕的位置。如图1

1

(2) 在播放窗口点击鼠标右键,在弹出的右键菜单中依次选择视频”→“图像截取”→“连续截图,如图2

2

(3) 连续截取画面(如图3)对话框中首先设置保存位置,即存放截取图像保存的目标文件夹,然后输入希望截取的图形文件的文件名的前缀,截图设置一般设置每间隔一秒设置就差不多了,所以选择按时间方式截取,并设置为1000毫秒(1),截取数量根据需要截取的视频长度(秒数)来设置。我们这里截取的视频就是上面的视频,其时间为115秒,即75秒,所以我们设置为采集数量75,并按时间秒截取。

3

(4) 设置好后,点击开始按钮,则准备开始截取!注意的是,点击开始”按钮后,要执行截取操作必须视频处于播放状态,所以,回到视频播放窗口,点击播放按钮开始播放,这个时候在这个窗口中就可以看到当前截取状态,如图4所示。

4

(5) 遴选图像文件。采集完成后,可以在目标文件夹中看到所有截取的图像,如图5所示。

图5

由于一般图像文件不多,可以直接通过该文件夹中的文件将没有字幕的图像,或者不需要的带有字幕的图像删除,只保留有用的带有字幕的图像文件。

第二阶段:合成阶段

启动Mathematica数学软件,输入并执行如下表达式:

SetDirectory["E:/临时内容"]

(*设置当前工作文件夹*)

image=Import[#]&/@FileNames["*.jpg"]

(*导入当前文件夹中所有后缀名为JPG的图像文件*)

zimu=ImageTake[#,{-110,-30}]&/@image

(*获取所有图像中的字幕窄条*)

zimu=Prepend[zimu,ImageTake[image[[5]],{0,ImageDimensions[image[[10]]][[2]]-110}]]

(*将选取显示的图像,这里选择第五幅图像,添加到字幕列表的最前面*)

hechengimage=ImageAssemble[Partition[zimu,1]]

(*最终合成效果*)

Export["hecheng.png",hechengimage]

(*将最终合成效果输出为图像文件,默认位置就为当前工作文件夹*)

以上每行表达式执行后都有一个输出,结果如下: 

第一、二行表达式输出结果:分别为当前工作文件夹位置和导入的图像文件列表。 

第三、四行表达式输出结果:分别为字母截图列表和添加了主体图像的字母截图列表 

第五、六行表达式结果:分别为最终合成效果和最终输出保存最终效果的图形文件名。

在目标文件夹中双击“hecheng.png”即可打开浏览最终合成效果。

相关推荐

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多