如何将 20 倍(.svs 整张幻灯片图像)放大到 40 倍幻灯片?

How to scale up the 20x (.svs whole-slide-image) to 40x slides?

我有一张以 20 倍扫描的整张幻灯片图像(.svs 格式)。对于我的问题,我想将幻灯片连同幻灯片元数据一起放大到 40 倍。我通过 openslide, NumPy, cv2, and vips 命令的组合进行了尝试。对于较小尺寸的幻灯片,我可以做到这一点,但对于较大尺寸的幻灯片,我不能。有没有一种直接的方法可以实现这一点?

我遵循了以下步骤

  1. 打开幻灯片和 NumPy 以阅读幻灯片。
  2. cv2 创建 png 放大的 .png 图像。
  3. vips vips2tiff 命令将 .png 转换为 .svs 文件。

我只会使用 libvips resize。例如:

$ 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

80s 和 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)