python slides用法_openslide-python使用心得

本文介绍了如何使用openslide-python库来处理全扫描图像,包括读取图像、关闭图像、获取图像尺寸、各级别的分辨率、下采样因子、最佳下采样级别以及读取图像区域和创建缩略图的方法。
部署运行你感兴趣的模型镜像

全扫描(whole slide image)图像非常的大,处理起来比较麻烦,openslide提供了一个很好的接口,具体参考openslide官网http://openslide.org/api/python/

首先先导入模块,这里是openslide-matlab的安装 http://www.linuxidc.com/Linux/2017-09/147187.htm

安装openslide-python下面两个命令就可以了

sudo apt-get install openslide-tools

sudo apt-get install python-openslide

import openslide

(1)、opensilde.OpenSlide(filename)——读取图像

slide = openslide.OpenSlide(‘/media/xhj/LENOVO/data/Metastasis/Tumor_005.tif’)

slide = openslide.OpenSlide('/media/xhj/LENOVO/data/Metastasis/Tumor_005.tif')

(2)、close()——关闭图像

slide.close()

slide.close()

level_count——这里没理解slide级别数是什么意思,代码返回为10,可能应该是slide的层数,比如40倍,20倍,10倍等有多少层

level_count = slide.level_count

print ‘level_count = ‘,level_count

level_count = slide.level_count

print 'level_count = ',level_count

上述代码得到 level_count = 10

(3)、dimensions (width, height)在0级别下,也就是最高分辨率的情况下slide的宽和高(元组)

[m,n] = slide.dimensions #得出高倍下的(宽,高)(97792,219648)

print (m,n)

[m,n] = slide.dimensions #得出高倍下的(宽,高)(97792,219648)

print (m,n)

上述代码得到 (97792, 219648),图像够大的

(4)、level_dimensions[k] 得到(width, height)元组,k下级别k,是指在k水平下的下面举例就知道k的意思,每张全扫描最高级别是0,也就是最高分辨率,这个分辨率在不同的全扫描图片中是不一样的,有的第0层是40倍,第二层是10倍,而有的第0层是20倍,第二层是10倍,k指对应的层数

[m1,n1] = slide.level_dimensions[1] #级别k,且k必须是整数,下采样因子和k有关

print (m1,n1) # m1 = m/下采样因子 此时k为1

[m1,n1] = slide.level_dimensions[1] #级别k,且k必须是整数,下采样因子和k有关

print (m1,n1) # m1 = m/下采样因子 此时k为1

上述代码得到 (49152, 110080) 如果k为2 得到 (24576, 55296) k为3得到 (12288, 27648)

(5)、level_downsamples 每一个级别K的对应的下采样因子,下采样因子应该对应一个倍率

slide_level_downsamples = slide.level_downsamples[2]

print slide_level_downsamples

slide_level_downsamples = slide.level_downsamples[2]

print slide_level_downsamples

上述代码得到 3.97569444444

(6)、get_best_level_for_sownsample(downsample) 对给定的下采样因子返回一个下采样级别,downsamples必须是浮点数

slide_downsamples = slide.get_best_level_for_downsample(5.0)

print slide_downsamples

slide_downsamples = slide.get_best_level_for_downsample(5.0)

print slide_downsamples

上述代码得到 2

(7)、read_region(location, level, size) 返回一个RGBA图像,包含指定区域的内容。location指0级别下左上角位置的坐标,元组,level指级别,整数,size是(width, height)是元组,

tile = numpy.array(slide.read_region((0,0),6, (1528,3432)))

plt.figure()

plt.imshow(tile)

pylab.show()

上述代码可以得到左上角坐标(0,0),6级别下,大小是(1528,3432)的图

(8)、get_thumbnail(size) 返回一个缩略图的RGB图像,size为(width,height)元组

slide_thumbnail = slide.get_thumbnail((1528,3432))

tile = numpy.array(slide_thumbnail)

# scipy.misc.imsave(‘/home/xhj/PycharmProjects/openslide-experiment/save/thumbnail.jpg’, tile)

plt.imshow(slide_thumbnail)

plt.imshow(tile)

pylab.show()

:http://www.linuxidc.com/Linux/2017-09/147188.htm

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值