手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

openslide-python使用心得

[日期:2017-09-29] 来源:Linux社区  作者:hjxu2016 [字体: ]

全扫描(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') 

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

slide.close() 

level_count——幻灯片中的级别数。级别从0(最高分辨率)到level_count - 1(最低分辨率)编号。这里没理解slide级别数是什么意思,代码返回为10,可能应该是slide的层数,比如40倍,20倍,10倍等有多少层

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) 

上述代码得到  (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 

上述代码得到        (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 

上述代码得到  3.97569444444 

(6)、get_best_level_for_sownsample(downsample)  对给定的下采样因子返回一个下采样级别,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

linux
相关资讯       OpenSlide 
本文评论   查看全部评论 (1)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* jyning 发表于 2018/1/20 18:13:56
我想问下为什么我的tif图像打不开?