openslide对.svs切成tile,并显示的记录

仅作为记录,大佬请跳过。

文章目录

直接上代码

(有.svs图和相应的python包(openslide、matplotlib)后可直接运行)

import openslide
import matplotlib.pyplot as plt

img_path=r'F:\Breast Metastases\data\images\Breast-Metastases-MSKCC\HobI16-053768896760.svs'

slide=openslide.OpenSlide(img_path);slide2=openslide.OpenSlide(img_path)
print(slide.level_dimensions[0])

from openslide.deepzoom import DeepZoomGenerator

print(slide.detect_format(img_path))        # 图像扫描仪制造商
print(slide.properties)                     # 幻灯片的各种属性
downsamples=slide.level_downsamples         # 下采样因子
[w,h]=slide.level_dimensions[0]             # 图像大小(宽,高)
print(w,h)

# # 得到缩略图
simg=slide.get_thumbnail((1500,1500))       # 206,400
plt.imshow(simg)
plt.show()

# # 实现DeepZoomGenerator的功能
data_gen=DeepZoomGenerator(slide2,tile_size=100,overlap=1,limit_bounds=False)

print('******************************')
print(data_gen.level_count)         # 深度缩放的级别
print(data_gen.tile_count)          # 深度缩放的图块数量
print(data_gen.level_tiles)         # level k's tile counts
print(data_gen.level_dimensions)    # level k's dimensions


# tile=data_gen.get_tile(11,(0,0))
# plt.imshow(tile);plt.show()

tile_img1=data_gen.get_tile(11,(0,0))
tile_img2=data_gen.get_tile(11,(0,1))
plt.subplot(2,1,1)
plt.imshow(tile_img1)
plt.subplot(2,1,2)
plt.imshow(tile_img2)
plt.show()

在这里插入图片描述

参考

感谢大佬博主文章传送门

openslide官网在tile切块处理方面的应用传送门

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于割医学图像,可以使用OpenSlide库来处理。OpenSlide是一个开源库,用于读取和处理大型的病理图像,它支持各种医学图像格式,如SVS、NDPI、MRXS等。 要进行图像割,您可以按照以下步骤进行操作: 1. 安装OpenSlide库:使用pip命令安装OpenSlide库,如下所示: ``` pip install openslide-python ``` 2. 打开图像:使用OpenSlide库打开医学图像文件,如下所示: ```python import openslide slide = openslide.OpenSlide('path/to/your/image.svs') ``` 3. 获取图像信息:可以获取图像的宽度、高度、级别数等信息,如下所示: ```python slide_width, slide_height = slide.dimensions slide_levels = slide.level_count ``` 4. 割图像:根据需要,可以选择将整个图像割成多个小块,或者根据感兴趣的区域进行割。以下是一个示例代码,将整个图像按照指定大小割成多个小块: ```python tile_size = 512 # 割后每个小块的大小 for level in range(slide_levels): level_width, level_height = slide.level_dimensions[level] for y in range(0, level_height, tile_size): for x in range(0, level_width, tile_size): # 获取割后的小块 tile = slide.read_region((x, y), level, (tile_size, tile_size)) # 处理割后的小块 # ... ``` 在割图像的过程中,您可以根据具体需求对割后的小块进行进一步处理,例如进行分类、分割等操作。 请注意,OpenSlide库还提供了其他功能,如缩放、旋转、获取注释等功能,您可以根据具体需求进行使用。希望以上信息能对您有所帮助!如果有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值