python,Openslide⾃动切.SVS格式(WSI)病理图像
随着深度学习在医疗界的发展,病理图像也越来越来重要。但是病理图像⼤多数在10万×10万分辨率,⽤平常的图像处理库没有办法读取。开源的openslide库提供清洁便利的读取⽅法。
⾸先安装,openslide,如果是ubuntu⽤户,直接 sudo apt install python-openslide,然后
导⼊库
import openslide
然后导⼊DeepZoomGennerator,主要是多层⾦字塔形式封装西瓜的故事
from openslide.deepzoom import DeepZoomGenerator
打开所需要读⼊的⽂件,给出⽂件名,
slide = openslide.open_slide('02.svs')
购物须知类别调⽤
highth = 2000
龙头石
data_gen = DeepZoomGenerator(slide, tile_size=highth, overlap=0, limit_bounds=Fal)
铜火锅>葱英文tile_size可以设成⾃⼰想切的图像⼤⼩。
limit_bounds表⽰的是⼤图整个边缘可能达不到⾃⼰设的长和宽。Fal,则丢弃边缘图。True,保存
overlap表⽰的是否边缘overlap,引⼊其他信息
输出总共切图个数和⼀共有多少个⾦字塔,
print(data_gen.tile_count)
黑木耳的做法
print(data_gen.level_count)
1036
17
num_w,图像切⽚宽度个数
num_h, 图像切⽚长度个数
恐龙是怎么消失的
_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.floor(h/highth))+1
for i in range(num_w):单词速记法
for j in range(num_h):
img = np.array(_tile(16, (i, j))) #切图
io.imsave(join(result_path, "02"+str(i)+'_'+str(j)+".png"), img) #保存图像