我有一个包含数百张图片的.tar
文件(.png
)。我需要通过opencv来处理它们。
我想知道-出于效率的原因-是否有可能在不经过光盘的情况下处理它们。换句话说,我想从与tar文件相关的内存流中读取图片。
例如
import tarfile
import cv2
tar0 = tarfile.open('mytar.tar')
im = cv2.imread( tar0.extractfile('fname.png').read() )
最后一行不起作用,因为imread
需要文件名而不是流。
假设这种直接从tar
流读取的方式可以实现,例如对于文本(参见this SO question)。
有没有建议用正确的png
编码打开流?
当然,可以选择不绑定ramdisk,尽管我正在寻找一些更容易计算的东西。
也许用imdecode来处理tar文件中的缓冲区?我没有试过,但似乎很有希望。
多亏了@abarry和this SO answer的建议,我终于找到了答案。
考虑一下
相关问题 更多 >
编程相关推荐