2011-04-06 56 views
13

如何從顯微鏡上拍攝的圖像中分割出細胞,沿着Matlab中完成的操作?在Python中進行細胞分割和熒光計數

http://blogs.mathworks.com/steve/2006/06/02/cell-segmentation/

另外,如果我採取不同的熒光信道的多個圖像(有一些抗體/製造者染色細胞後),我怎樣才能自動定量細胞的陽性每個標記的級分?有沒有人在Python中做過這樣的事情?還是有Python中的庫可以用來做到這一點?

+0

不知道如何把這個放下抱,但試圖編輯解決(而挑剔的和不正確的)「關主題「標記。 – 2015-06-09 22:22:31

+0

@bluefeet - 爲什麼關閉?這是一個具體問題,下面有兩個具體答案。我編輯了要求推薦的部分。 – 2015-07-12 04:32:26

+0

@thouis這是爲什麼關閉?因爲這個問題太廣泛了,而且還要求一個圖書館。您的編輯刪除最後一行基本上無效每個答案就這個問題,只是指向一個鏈接。關閉一個問題並不意味着它會被刪除,但是這個寫的問題是無關緊要的。 – Taryn 2015-07-13 14:48:07

回答

6

您可以使用OpenCV庫在Python中執行此操作。

特別,你會感興趣的以下特點:

  • 直方圖拉伸(cv.EqualizeHist)。這是來自當前Python API的missing,但是如果您下載OpenCV的最新SVN版本,則可以使用它。這部分是唯一的,並不需要得到同樣的結果
  • image thresholding
  • 形態操作,如erode(也擴張,打開,關閉等)
  • 確定一個blob的輪廓的二進制圖像顯示的目的使用cv.FindContours - 見this question。它使用C,而不是Python,但API幾乎相同,所以你可以從那裏學到很多
  • 分水嶺分割(使用cv.Watershed - 它exists,但由於某種原因,我在手冊中找不到它)

考慮到這一點,這是我會怎麼用OpenCV中得到相同的結果MATLAB文章:

  1. 閾值利用經驗確定的閾值圖像(或大津的方法)
  2. 應用擴大圖像以填補空白。任選地,模糊之前的先前閾值步驟的圖像 - 這也將使用cv.FindContours
  3. 任選地,paint the contours
  4. 使用blob信息除去小的「洞」
  5. 確定的輪廓,在原始遍歷每個斑圖像並應用一個單獨的閾值對每個斑點以分離細胞核(這是他們的imextendedmax操作做)
  6. 任選地,塗料在細胞核
  7. 應用分水嶺變換

我還沒有嘗試過任何(對不起,現在沒有時間),所以我不能告訴你任何代碼。然而,根據我對OpenCV的經驗,我相信到第7步的所有內容都可以正常工作。我以前從未使用過OpenCV的分水嶺轉換,但我無法看到它不能在此工作的原因。

嘗試執行我已經顯示的步驟,並讓我們知道您是否有任何問題。一定要張貼您的來源,讓更多的人能夠幫助您。

最後,要回答您關於染色細胞並量化其存在的問題,知道您正在使用的染料是相當容易的。例如,要確定用紅色染料染色的細胞,您需要從圖像中提取紅色通道並檢查高強度區域(可能是通過閾值)。

1

您也可能會發現這個庫有用:

https://github.com/luispedro/pymorph/

我發現更容易獲得比OpenCV庫移動。

+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – 2015-06-06 21:42:29

+0

@AndrewSvetlov感謝哥們...... 4年前你在哪裏告訴我們這件事。 – so12311 2015-06-07 01:13:19

1

而只是爲了增加一個:cellprofiler.org(開源的細胞圖像分析軟件,在python)