仅作为记录,大佬请跳过。
文章目录
直接上代码
(有.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切块处理方面的应用传送门