我有一个.tar
包含数百张图片的文件 ( .png
)。我需要通过opencv处理它们。
我想知道 - 出于效率原因 - 是否可以在不经过光盘的情况下处理它们。换句话说,我想从与 tar 文件相关的内存流中读取图片。
例如考虑
import tarfile
import cv2
tar0 = tarfile.open('mytar.tar')
im = cv2.imread( tar0.extractfile('fname.png').read() )
最后一行不像imread
预期的文件名而不是流那样工作。
考虑到这种直接从tar
流中读取的方式可以实现,例如文本(参见例如这个 SO question)。
有什么建议以正确的png
编码打开流吗?
解压到 ramdisk 当然是一种选择,尽管我正在寻找更可缓存的东西。