从电影中提取所有静止图像

Aar*_*lla 11 video linux motion-detection

我有大量纸张要扫描。我想使用我的相机,而不是自动进纸或平板扫描仪。过了一会儿,我突然想到,我可以将相机安装在三脚架上,将其设置为录制视频,然后从视频中提取图像,而不是为每个页面都制作一张照片。

那样的话,我只需要处理这些文件:挑一张,放在相机前,等一下,换上。

是否有 Linux 软件可以从电影中获取所有图像而没有运动?一种非运动检测。

slh*_*hck 12

我喜欢你的想法。我想我已经找到了一种方法来做你想做的事。

利用ffmpeg出口帧在给定的时间间隔

您可以安装ffmpeg然后将视频转换为静止帧。

ffmpeg -i input_file.mp4 -r 1 image_%4d.png
Run Code Online (Sandbox Code Playgroud)

控制帧率

-r选项以一个数字作为参数,即帧率。因此,此选项的参数将是1 除以您将纸张放在相机前的时间

例如:

  • 每秒挑选一张纸,使用-r 1.
  • 每两秒选一张纸,使用-r 0.5——因为每秒 0.5 帧意味着每帧 2 秒。
  • ...

您只需将其与开始时间同步,因此我建议使用秒表。

改变起始位置

您还可以使用 来“移动”视频-ss <some number>,其中<some number>是从视频开始算起的时间(以秒为单位)。所以使用-ss 5将从五秒开始。

如果您需要更精确地移动它,请使用hh:mm:ss.xxx语法,从而在 中指定毫秒xxx,例如像00:00:00.500.

控制输出名称和格式

您可以更改image_%4d.png以使用更多数字。%4d将输出图像,如00010002等。所以这对于大多数情况应该足够了。

ffmpeg也可以输出为JPG,所以你只需要相应地更改后缀。不过,出于质量原因,我建议使用 PNG。

一些技巧

尝试使用适当的照明。设置直接光源到纸张并将相机设置为高对比度。您可能需要批量编辑输出文件以裁剪它们、去除色调并锐化它们。

您可以使用IrfanView对它们进行批处理,或者使用Adobe Lightroom的试用版。