赞
踩
全视野数字切片(whole slide images, WSIs)尺寸可高达15w*15w像素,一般处理图像的库无法处理,需要用到openslide库。本文简要介绍openslide库中几个常用函数的用法。
详细用法介绍请参照:https://openslide.org/api/python/
如果还没安装请去:http://t.csdn.cn/RT8lw
import openslide
# 读入WSI图像,生成一个slide实例
slide = openslide.Openslide('tumor_001.tif')
医学影像大部分为金字塔结构,有多个level的分辨率,他们是按照一定的缩放倍数(下采样因子)进行缩放的。其中 level 0 的分辨率是WSI的最高分辨率
# 查看WSI的level数
print(slide.level_count)
#OUT:8
# 查看WSI各个level的分辨率
print(slide.level_dimensions)
#OUT: ((97792, 221184),(48896, 110592),(24448, 55296),(12224, 27648),
#(6112, 13824),(3056, 6912),(1528, 3456),(764, 1728))
# 查看WSI各个level的缩放倍数
print(slide.level_downsamples)
#OUT:(1.0, 2.0, 4.0, 8.0, 16.0, 32.0, 64.0, 128.0)
所用函数为: read_region(location, level, size) 返回一个 RGBA图像,参数介绍:
1.location:(tuple),表示 起始点在level 0下的坐标
2.level: (int),在哪个level下截取
3.size:(tuple),区域大小
# 读取level8的整个图像 size:(764, 1728)
image = slide.read_region((0,0), 8, slide.level_dimensions[8])
image = image.convert('RGB') #转换为RGB图像
# 在level 1分辨率下读取2个相邻的256*256大小的图像块
patch1 = slide.read_region((0,0), 1, (256,256))
patch2 = slide.read_region((0,512), 1, (256,256))
# level 1 下256相当于level 0 的512,缩放比例2倍
# 保存
patch1.save('tumor_level_8.png')
# 转换为ndarray
patch1_array = np.array(patch1)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。