我有一个完整的幻灯片。SVS格式),以20倍的速度扫描。对于我的问题,我想把幻灯片和幻灯片元数据一起放大到40倍。我通过openslide, NumPy, cv2, and vips
命令的组合进行了尝试。对于较小尺寸的幻灯片,我可以做到这一点,但对于较大尺寸的幻灯片,我不能做到这一点。是否有一种直接的方法可以实现这一点?
我遵循了以下步骤
- 打开幻灯片和NumPy读取幻灯片。
- cv2创建png升级后的。png图像。
- vips vips2tiff命令转换。png为。svs文件。
我只使用libvipsresize
。例如:
$ vipsheader CMU-1.svs
CMU-1.svs: 46000x32914 uchar, 4 bands, srgb, openslideload
$ /usr/bin/time -f %M:%e vips resize CMU-1.svs x.tif[compression=jpeg,tile,pyramid] 2
673804:80.56
$ vipsheader x.tif
x.tif: 92000x65828 uchar, 3 bands, srgb, tiffload
80和680mb的内存来制作x.tif
,一个平铺的,金字塔形的,jpeg压缩的TIFF。libvips不能写SVS文件,但这将非常接近。默认情况下,它将使用双三次插值器进行放大。
在Python中使用pyvips:
import pyvips
x = pyvips.Image.new_from_file("CMU-1.svs")
x = x.resize(2)
x.write_to_file("x.tif", compression="jpeg", tile=True, pyramid=True)