如何解决如何在 WSI 幻灯片的特定放大倍数下创建特定大小的补丁?
我正在尝试以特定放大率从 WSI 幻灯片 (Available Here) 创建补丁。我在 Python 中使用 OpenSlide。我可以使用以下代码将所需的放大倍数转换为特定级别的幻灯片:
mag = 20 #required magnification
slide = openslide.open_slide(slide_path)
base_mag = 10.0 / float(slide.properties['openslide.mpp-x'])
level = slide.get_best_level_for_downsample(base_mag / mag)
因此问题归结为只是在幻灯片的特定级别找到补丁。
首先,我使用以下代码使用 Otsu 进行组织分割:
slide = openslide.open_slide(slide_path)
thumbnail = slide.get_thumbnail((slide.dimensions[0] / 256,slide.dimensions[1] / 256))
thumbnail_grey = np.array(thumbnail.convert('L')) # convert to grayscale
thresh = threshold_otsu(thumbnail_grey)
binary = thumbnail_grey > thresh
二进制是一个 np.array,0:组织,1:非组织
此外,我有一张蒙版图像(WSI 幻灯片),它告诉我肿瘤的区域。
为了生成补丁,我遇到了在 Python 中使用 OpenSlide 支持 DeepZoom。根据 OpenSlide 文档 (Available Here),我可以使用 DeepZoom 生成这样的图块:
tiles = DeepZoomGenerator(slide,tile_size=256,overlap=0,limit_bounds=False)
我意识到两件事:-
-
slide.level_count
在幻灯片中打印 10,即 0-9 级,其中 0 是最高分辨率。 -
tiles.level_count
在图块中打印 19,即 0-18 级,其中 18 是最高分辨率。
要获得特定级别的图块,我可以使用 get_tile(level,address)
返回一个 RGB 图像并将 DeepZoom 级别和级别内图块的地址(列、行)作为(列、行)元组.
现在我对一些事情感到困惑:
- 如何将我的幻灯片级别转换为 DeepZoom 级别?
- 如何在此特定 DeepZoom 级别获取不同图块的地址?我尝试使用随机地址,但它给出了“无效地址”的异常。
- 如何将两者结合在一起,以便我只从我的组织区域生成图块,然后将这些图块分割为肿瘤和非肿瘤。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。