openslide学习笔记

这篇博客介绍了如何使用openslide库读取大图像并进行DeepZoom切块操作。详细讨论了DeepZoomGenerator的参数,如tile_size、overlap和limit_bounds,并展示了如何计算切图的总数和金字塔层数。内容包括自定义切图大小、边缘overlap处理以及不同层级的切片数量和尺寸。最后,探讨了openslide库在实际应用中的常见用法。
摘要由CSDN通过智能技术生成
  1. 读取文件
img_path = 'D:/Server download/test_slide.svs'
result_path = 'D:/result'
slide = openslide.open_slide(img_path)
  1. 图像原始大小(获得图像原始大小有多种方法,这只是其中一种)
[w,h] = slide.level_dimensions[0]
  1. 切块方法

各参数及其含义,参考官方说明:

class openslide.deepzoom.DeepZoomGenerator(osr, tile_size=a, overlap=1, limit_bounds=False)

osr – the slide object
tile_size (int) –单个的宽度和高度。为了获得最佳的查看器性能,平铺大小+2*重叠应该是2的幂。
overlap (int) – 要添加到平铺每个内边缘的额外像素数
limit_bounds (bool) – 如果为True,则仅呈现非空幻灯片区域
osr–幻灯片对象

from openslide.deepzoom import DeepZoomGenerator
data_gen = DeepZoomGenerator(slide, tile_size=50, overlap=0, limit_bounds=False)

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

num_w,图像切片宽度个数
num_h, 图像切片长度个数
data_gen.get_tite(level,(row,col)),level范围在data_gen.level_count,最大的为金字塔底层,最小为0。row,范围是(0,num_w)。col,范围是(0,num_h).还有其他的API切图,可以看官方文档
也可以自己实现,不调用API.

num_w = int(np.floor(w/width))+1
num_h = int(np
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值