图像处理:将视频中的剧照导入python / matplotlib?

时间:2014-04-04 01:31:10

标签: python video image-processing numpy matplotlib

我正在玩堆叠和处理天文照片。我对完成图像中的算法理解感兴趣,所以我还没有尝试过任何漂浮的抛光产品。

我有一些中等大小的静态照片集(一次几十张),我可以使用

成功导入
img = imread("filename.jpg")

这会生成numpy ndarray矩阵,我可以使用numpyscipy.ndimage中提供的工具进行操作,并使用imshow()进行显示。后端由Python Imaging Library, PIL支持,据我所知,只支持静止图像。

对于更长时间的曝光,设置我的相机拍摄视频,然后从视频中提取帧并通过与静止图像相同的分析管道运行它们会很不错。据我所知,PIL仅支持静止图像。我的相机使用.MOV文件扩展名生成Quicktime电影。

是否有Python库可以让我从视频帧中访问数据?

或者,我很欣赏有关使用外部工具的指导(似乎存在命令行ffmpeg,但我还没试过)生成我可以提供的临时文件进入我的静态图像管道。由于我可能想要在10分钟,30fps的电影中检查所有18k帧,所以只是将所有帧提取到一个大文件夹中可能不是一种选择。

我在OSX Mavericks上运行Python 2.7;我可以轻松访问MacPorts来安装内容。

1 个答案:

答案 0 :(得分:1)

ffmpeg的以下行将允许您从预先指定的时间(此处电影开始后20秒)开始提取10秒的视频:

ffmpeg -i myvideo.MOV -ss 00:00:20.00 -t 10 img%3d.jpg

很容易弄清楚如何在Bash循环中使用它或通过Python在循环中运行命令。