我想将一个scikit- image
函数(特别是模板匹配函数match_template
)应用于mp4
视频的h264
编码帧。对我的应用程序来说,跟踪每个帧的时间很重要,但是我知道帧速率,因此可以轻松地从帧号进行计算。
请注意,我使用的资源较少,并且我希望保持依赖关系尽可能的小:numpy
无论如何都是必需的,并且由于我打算使用scikit- image
,所以我避免导入(和编译)openCV
只是为了阅读视频。
我看到的底部这个页scikit- image
可以seamleassly处理存储作为视频numpy
阵列,从而获得这将是理想的。
Imageio python包应做您想要的。这是使用此软件包的python代码段:
import pylab
import imageio
filename = '/tmp/file.mp4'
vid = imageio.get_reader(filename, 'ffmpeg')
nums = [10, 287]
for num in nums:
image = vid.get_data(num)
fig = pylab.figure()
fig.suptitle('image #{}'.format(num), fontsize=20)
pylab.imshow(image)
pylab.show()
您还可以直接遍历文件中的图像(请参阅文档):
for i, im in enumerate(vid):
print('Mean of frame %i is %1.1f' % (i, im.mean()))
要安装imageio,可以使用pip:
pip install imageio
另一种解决方案是使用moviepy(它使用类似的代码来读取视频),但是我认为imageio更轻便并且可以完成工作。
对第一条评论的回应
为了检查整个文件中的标称帧速率是否相同,您可以计算迭代器中的帧数:
count = 0
try:
for _ in vid:
count += 1
except RuntimeError:
print('something went wront in iterating, maybee wrong fps number')
finally:
print('number of frames counted {}, number of frames in metada {}'.format(count, vid.get_meta_data()['nframes']))
In [10]: something went wront in iterating, maybee wrong fps number
number of frames counted 454, number of frames in metada 461
为了显示每帧的时间戳:
try:
for num, image in enumerate(vid.iter_data()):
if num % int(vid._meta['fps']):
continue
else:
fig = pylab.figure()
pylab.imshow(image)
timestamp = float(num)/ vid.get_meta_data()['fps']
print(timestamp)
fig.suptitle('image #{}, timestamp={}'.format(num, timestamp), fontsize=20)
pylab.show()
except RuntimeError:
print('something went wrong')
scikit-image 是专注于图像处理的Python包,并且使用原生的Numpy数组作为图像对象。本章描述如何在不同图像处理任务上使用scikit-image,并且保留了其他科学Python模块比如Numpy和Scipy的链接。 也可以看一下:对于基本图像处理,比如图像剪切或者简单过滤,大量简单操作可以用Numpy和SciPy来实现。看一下使用Numpy和Scipy图像操作和处理部分。 注意,
问题内容: 其scikit映像下载显示: 要么 但无论标志U如何都失败,如下所示: 和: 请注意,该操作也会失败,无法找到它。 我有Python 2.7.10,Matplotlib 1.3.1,PIL 3.4.2和Scipy‘0.18.1’。该怎么办? 问题答案: 在系统级Python上安装库通常是个坏主意。请为每个项目使用virtualenv。 首先在Mac上全局安装virtualenv: 然后
Scikit-Image 是图像处理算法的集合,采用 Python 语言编写。 从二进制文件安装 Debian/Ubuntu: sudo apt-get install python-skimage OSX: pip install scikit-image Anaconda: conda install -c conda-forge scikit-image Windows: Download Windows binaries
本文向大家介绍python opencv读mp4视频的实例,包括了python opencv读mp4视频的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python opencv读mp4视频的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
请问,我怎样才能得到一个真正的MP4? 我的代码:
每次作业运行时,都在从不断增长的现有表中读取数据。我正在寻找Spring batch中的选项,以便在每次运行调度作业时只查询新记录。 如果我读了50000条记录,下一个时间表应该从50001开始。 我的想法是将ItemReader读取的最后一条记录的id(整个读卡器输出的最后一条,而不是每个块的最后一条)保存在DB中,并在后续的作业计划中使用。我将从主表返回按id排序的数据。 我怎么知道作者最后的