openslide简单入门代码

import openslide
from openslide.deepzoom import DeepZoomGenerator  # 导入DeepZoomGennerator,主要是多层金字塔形式封装
import numpy as np
import matplotlib.pyplot as plt
import io

slide = openslide.open_slide(r'H:\0\svs\0_0.svs')

[w, h] = slide.dimensions# 默认得出最高倍下的(宽,高)
print(w, h) # 28043 28615

print(slide.level_dimensions)# ((28043, 28615), (7010, 7153), (1752, 1788), (438, 447), (109, 111), (27, 27))
print(slide.level_dimensions[1])# (7010, 7153)

# downsamples,网上都成为下采样因子,可能不好理解,它代表的将原始WSI图像进行缩放的倍数,与level_dimentions是相对应的
print(slide.level_downsamples) #(1.0, 4.000423682251375, 16.005096763813555, 64.02038705525422, 257.53401107529544, 1049.2222222222222)

print(slide.level_count) #层数

# read_region(location, level, size)
# 返回一个包含特定区域的RGBA图像的rgba数值数组
# 参数:
# location (元组) 左上角坐标
# level (int)  层数
# size (元组) 大小(宽, 高)
print(slide.read_region((0, 0), 3, (438, 447)))
img=slide.read_region((0, 0), 3, (438, 447))
img_arr=np.array(img)

plt.imshow(img_arr)
print(img_arr)
print(img_arr.size)# 783144  (447*438*4
print(img_arr.shape) # (447, 438, 4)


slide_best_downsamples=slide.get_best_level_for_downsample(4.0)
print (slide_best_downsamples)

# 返回一个缩略图的RGB图像,size为(width,height)元组
slide_thumbnail = slide.get_thumbnail((7010,7153))
tile = np.array(slide_thumbnail)
plt.imshow(slide_thumbnail)
plt.imshow(tile)

data_gen = DeepZoomGenerator(slide, tile_size=highth, overlap=0, limit_bounds=False)
# tile_size可以设成自己想切的图像大小。
# limit_bounds表示的是大图整个边缘可能达不到自己设的长和宽。False,则丢弃边缘图。True,保存
# overlap表示的是否边缘overlap,引入其他信息
# 输出总共切图个数 和 一共有多少个金字塔

print('总切图的个数:', data_gen.tile_count)  # 切块的块数
print('层数:', data_gen.level_count) # 一共有多少个金字塔
print('每层尺寸大小:', data_gen.level_dimensions) # 每层尺寸大小


img = data_gen.get_tile(3, (0, 0)) #切图
plt.imshow(img)
plt.show()


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值