从临时文件中提取imread



我正在尝试skimage.io.imread()一个以前写入tempfile.TemporaryFile()的图像(为了具体起见,可以说是tiff文件)。然而,skimage抱怨说

   ValueError: Cannot determine type of file b'<_io.BufferedRandom name=6>'

我这样做是因为另一个程序将图像写入标准输出。我用subprocess.check_output收集它并将其写入临时文件,从而避免将图像保存到磁盘。

有人知道如何实现这一点吗,或者对如何将一个图像从stdout管道传输到python图像,最终作为numpy.ndarray处理有更好的想法吗?

解决方案如下

with NamedTemporaryFile() as f:
    skimage.io.imread(f.name, plugin="tifffile")

或者,可以用tifffile代替freeimage。早些时候我传递了文件对象,但imread实际上想要一个文件名。

最新更新