python - 在 python openCV 中一次将许 multimap 像读入内存

标签 python c++ opencv

我正在开发一个 openCV 界面,我在其中显示一堆连续图像(实际上是视频,但我使用的是图像)。我希望能够通过按住一个键真正快速地“滚动”图像。我当前的实现非常天真,它遍历所有图像并执行以下操作:

frame = cv2.imread(img_file, 1)
cv2.imshow('frame', frame)

所以每次从磁盘读取时都会有 IO 延迟,我认为这就是它慢得让人痛苦的原因。 python API 是否有任何好的方法可以将所有图像加载到内存中,或者至少使用 imread 之类的东西在内存中进行批处理,这样我就可以在浏览时使用它们?或者对如何实现这一点的任何建议持开放态度。谢谢。

最佳答案

将每一帧添加到一个列表中,通过列表索引访问

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 - 在 python openCV 中一次将许 multimap 像读入内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42036447/

相关文章:

python - OpenCV imwrite 不保存照片,返回 false

c++ - 有人可以解释一下 openCV 中的 detectMultiScale

python - 如何对相同值的范围进行二分查找?

python - 如何让paraview的相机命令同时生效

c++ 11 带有 decltype 的尾随返回类型不能按预期工作

c++ - 使用自定义编译的 zlib 在 Linux 上编译 Boost.Iostream 会导致多个卡纸错误

java - 我在 android 上通过 bitmapToMat 得到了 CvException

使用 Wi-Fi 的嵌入式设备上的 Python/Scapy 性能

python - BigQuery - 在分区内嵌套操作,以便聚合具有 170 亿条记录的表中的连续记录

c++ - 静态变量链接错误,C++