2021-05-12 14:32:11
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')
(2)、close()——關閉影象
slide.close()
level_count——幻燈片中的級別數。級別從0(最高解析度)到level_count - 1(最低解析度)編號。這裡沒理解slide級別數是什麼意思,程式碼返回為10,可能應該是slide的層數,比如40倍,20倍,10倍等有多少層
上述程式碼得到 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
相關文章