在 python openCV 中一次将许多图像读入内存
Posted
技术标签:
【中文标题】在 python openCV 中一次将许多图像读入内存【英文标题】:Reading many images into memory at once in python openCV 【发布时间】:2017-02-04 04:25:25 【问题描述】:我正在开发一个 openCV 界面,我正在显示一堆连续图像(实际上是一个视频,但我正在使用图像)。我希望能够通过按住一个键快速“滚动”图像。我目前的实现非常幼稚,它遍历所有图像并执行此操作:
frame = cv2.imread(img_file, 1)
cv2.imshow('frame', frame)
所以每次从磁盘读取时都会存在 IO 延迟,我认为这就是导致它非常缓慢的原因。 python API有什么好的方法可以将所有图像加载到内存中,或者至少使用imread
之类的东西在内存中进行批处理,这样我就可以在翻阅时使用它们?或接受有关如何完成此任务的任何建议。谢谢。
【问题讨论】:
【参考方案1】:将每一帧添加到列表中,通过列表索引访问
frames=[]
files = [...some list of files..]
for img_file in files:
frame = cv2.imread(img_file, 1)
frames.append[frame]
# and then later
for frame in frames:
cv2.imshow('frame', frame)
# or by individual frame
cv2.imshow('frame', frames[123])
【讨论】:
以上是关于在 python openCV 中一次将许多图像读入内存的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 C# winforms 中一次将文本写入多个文本框?
如何在 Django 中一次将多个对象添加到 ManyToMany 关系?
有没有办法在 Swift 中一次将委托分配给同一类的多个对象?