2012-07-27 47 views
1

繼最後一個問題:read big image file as an array in python實現圖像分割與蟒蛇發電機

由於我的筆記本電腦的內存限制,我想實現的Python生成的圖像分割算法,該算法可以一次讀取每個像素,而不是整個圖像。我的筆記本電腦是Windows 7(64位操作系統),採用4G內存和Intel(R)Core(TM)i7-2860 QM CPU,我正在處理的圖像超過2G。我想要應用的算法是分水嶺分割:http://scikits-image.org/docs/dev/auto_examples/plot_watershed.html

我能找到的唯一類似示例是http://vkedco.blogspot.com/2012/04/rgb-to-gray-level-to-binary-python.html,但我需要的不僅僅是一次轉換像素值。我需要考慮近像素之間的關係。我能怎麼做?

任何想法或暗示對我?提前致謝!

+3

ISTM你可能還會減小圖像大小(我的意思是降低像素數或調色板的縮放比例),以便它足夠小以適應工作。如果分割足夠穩健以確保可靠,那麼無論如何都可以使用200M圖像。 – DSM 2012-07-27 14:34:22

回答

4

由於RGB到graylevel轉換操作純粹是局部的,因此流式處理方法很簡單;像素的位置是無關緊要的。流域是一項全球性運作。一個像素可以顯着改變輸出。你有幾種選擇:

  1. 寫一個工作在瓦片上的流域的實現,並迭代許多通過圖像。這聽起來很難。
  2. 使用本地方法來分割(即閾值)。
  3. 獲得更多RAM的計算機。 RAM很便宜,你可以將它大量地放到桌面系統中。