OpenSilde安裝與入門

2021-10-05 15:52:31 字數 2620 閱讀 8565

openslide是處理醫學影象經常用到的乙個包,因為wsi(whole slide image)是非常大的,在一般情況下是沒有辦法處理的,所以才要借助openslide進行處理。下面是openslide在ubuntu下的安裝方法

pip3 install openslide-python
如果匯入時發生報錯,那一般是缺少依賴項,在終端執行:

sudo apt install python-openslide

首先要說明的一點是openslide的很多api的使用跟python自帶的pil相似,返回的物件是image物件而不是numpy中array物件,這點需要特別注意。因此在處理上一般都會將其轉化為array物件,其預設的通道順序是rgb。但是還有一點需要注意的是,轉化為array物件後是4通道,即在rgb後會再加乙個alpha(透明度)通道,其形式為【r,g,b,a】。

關於座標問題,還是跟python自帶的pil相似,都是(影象的寬,影象的高),跟array中矩陣的順序(影象的高,影象的寬)是相反的。而基於numpy的opencv、skimage在處理影象矩陣是都是先height後width的,即img【height,width】。

影象讀取

import openslide as opsl

slide=opsl.openslide(

'***x.svs'

)

這裡得到的是slide物件,後續對於wsi影象的操作都是基於此。

屬性

slide.level_count
level_count屬性是svs有多少層金字塔結構。所謂的金字塔結構,就是svs已經儲存了從上到下每一層取樣的圖titles,預設情況下0級是原圖,每向下一級相當於是對上一級影象的乙個下取樣,下取樣比例一般是4,也可以是2。

slide.level_dimensions
level_dimensions屬性是獲取指定級下的影象的寬和高,返回的是乙個list,每乙個元素是乙個陣列。

slide.level_downsamples
level_downsamples屬性返回的是指定級別下的下取樣比例,需要注意的是這個數字表示對0級影象的下取樣倍數。

提取影象

在opensilde中提取影象有兩種方法,分別是get_thumbnail和read_region。get_thumbnail是根據你指定的尺寸,返回原圖的縮圖;read_region提取指定層數下指定起始位置和大小的切片截圖。在對0層影象(即原圖)進行取樣和處理中,read_region更常用。需要注意的是,不論是get_thumbnail還是read_region,二者返回的都是python的影象物件,如果需要用別的影象處理工具進行後續的影象處理,比如skimage或opencv,都需要先將其轉為numpy格式。

slide_thumbnail = slide.get_thumbnail(slide.level_dimensions[2]

)# 以2級影象的尺寸作為指定輸出的縮圖尺寸返回乙個縮圖影象

slide_thumbnail = slide.get_thumbnail(

(1000

,600))

# 也可以自己指定乙個具體的數值,需要注意的是,第乙個引數實際上代表的是寬w,第二個引數代表的是高h

tiles = slide.read_region(

(location, level, size)

# read_region方法有三組引數,第一組引數是你要提取切片的起始座標(該座標是對應曾經下的座標),

# 第二組引數是你要提取的影象層級

# 第三組引數是切片的尺寸,同樣是(寬,高)的形式

這裡需要特別注意的location座標必須是0級圖下的座標,即如果不是取0級圖,那麼必須將提取切片的起始座標還原在0級圖下的座標,下面是引數說明。

def

get_thumbnail

(self, size)

:"""return a pil.image containing an rgb thumbnail of the image.

size: the maximum size of the thumbnail."""

def

read_region

(self, location, level, size)

:"""return a pil.image containing the contents of the region.

location: (x, y) tuple giving the top left pixel in the level 0

reference frame.

level: the level number.

size: (width, height) tuple giving the region size.

unlike in the c inte***ce, the image data returned by this

function is not premultiplied."""

Charles安裝與入門

charles的本質就是乙個 伺服器!通過這篇文章你可以學會使用charles工具擷取請求和響應,達到分析抓包到目的。如果你想學習如何使用charles工具,可以仔細閱讀這篇文章,了解一下charles工具的常用功能使用方法。或基於red hat2當你安裝完charles,接下來就了解如何使用cha...

Docker入門與安裝

docker 是乙個開源的應用容器引擎,基於 go 語言 並遵從 apache2.0 協議開源。docker 可以讓開發者打包他們的應用以及依賴包到乙個輕量級 可移植的容器中,然後發布到任何流行的 linux 機器上,也可以實現虛擬化。docker 是乙個用於開發,交付和執行應用程式的開放平台。do...

LaTeX安裝與入門

一直看見有推薦使用latex來進行文件編輯與排版,那我也嘗試一下!不要安裝和使用 ctex 套裝!請在任何情況下優先使用 ctex 巨集集在 latex 中處理中文!ctex 巨集集和 ctex 套裝是兩個不同的東西。ctex 巨集集是整合了中文支援 作業系統判定 字型選擇 版式預設為一體的一組巨集...