在 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 中一次将委托分配给同一类的多个对象?

尝试在 mvc 3 中一次将两个模型传递到同一个视图时出现问题

OpenCV探索:图像拼接和图像融合技术

opencv读图片灰度值