在医学图像中,通常使用数字扫描仪将病理图像存储到计算机上,即幻灯片的数字版本称为WSI(whole slide image)。因为WSI的分辨率比较大,常规处理方法通常无法完成对其进行处理,所以需要借助openslide库进行处理。
官方文档: https://openslide.org/api/python/#module-openslide
1、安装openslide
sudo apt-get install openslide-tools
pip install openslide-python
sudo apt-get install python-openslide
sudo apt-get install python3-openslide
2、常用方法
(1)openslide.open_slide——读取
import openslide
slide = openslide.open_slide(xxx.svs/xxx.tif)
(2)slide.level_dimensions——(width, height)
slide.level_dimensions
得到是不同分辨率下的宽高元组的列表。每张WSI最高级别是0,即最高分辨率。
(3)slide.dimensions——当前级别下的宽和高
w, h = slide.dimensions
(4)slide.level_count——幻灯片的级别数
slide.level_count
0是最高级别(最高分辨率),level_count-1是最低级别。
(5)slide.level_downsamples——下采样因子的列表
# level_downsamples[k] 是第 k 级的下采样因子。
slide.level_downsamples[k]
(6)slide.read_region() ——返回一个RGBA图像,包含指定区域的内容
# (location_tuple,level,size)
image = slide.read_region(coord, self.level, (self.size, self.size))
image = image.convert("RGB")
返回是一个四通道的图像,其中A表示透明度。使用PIL库转换成RGB格式。
(7)slide.get_thumbnail()——得到指定尺寸的RGB图像缩略图
# size(tuple)
thumb = slide.get_thumbnail(size)
使用get_thumbnail方法得到的是Image对象而不是numpy array对象
(8)slide.close() ——关闭
slide.close()