Résumé de l'utilisation des fonctions communes dans le package openslide

Préface

La taille des tranches numériques plein champ (images de diapositives entières, WSI) peut atteindre 15w*15w pixels, ce qui ne peut pas être traité par les bibliothèques générales de traitement d'image, la bibliothèque openslide doit donc être utilisée. Cet article présente brièvement l'utilisation de plusieurs fonctions courantes dans la bibliothèque openslide.
详细用法介绍请参照:https://openslide.org/api/python/


1. Importez le package openslide

Si vous ne l'avez pas encore installé, rendez-vous sur : http://t.csdn.cn/RT8lw

import openslide

2. Lire dans l'image WSI

#  读入WSI图像,生成一个slide实例
slide = openslide.Openslide('tumor_001.tif')

3. Consultez les informations sur la pyramide de WSI

La plupart des images médicales ont une structure pyramidale avec plusieurs niveaux de résolution et sont mises à l'échelle selon un certain facteur d'échelle ( facteur de sous-échantillonnage ). La résolution du niveau 0 est la plus haute résolution du 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)

4. Lisez la zone spécifiée par WSI

La fonction utilisée est : read_region(location, level, size) renvoie une image RGBA .Introduction des paramètres :
1.location : (tuple), indiquant les coordonnées du point de départ au niveau 0
2.level : (int), à quel niveau pour intercepter
3.size : (tuple), taille de la zone

#  读取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)

Je suppose que tu aimes

Origine blog.csdn.net/ittongyuan/article/details/129479209
conseillé
Classement