我正在尝试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
实际上想要一个文件名。