2015-01-08 49 views
1

我必須從單色圖像中分割一個區域。如何在'im2bw'中自動選擇一個閾值來分割matlab

在我的代碼中應用命令'graythreshold'之後,命令'im2bw'需要一個閾值來展開只包含ROI的二值圖像,以便我可以獲取該二值圖像的補碼並將其相減獲得投資回報。

然而,如果主要的分割區域遠低於該水平,則針對一個圖像選擇的閾值I不適用於其他圖像。對於某些圖像,0.13的閾值工作,而對於較低強度的圖像,它可以在0.03左右。

如何編碼它以擴展二進制圖像,代碼的一部分應該自動分析圖像並設置閾值級別而不是我爲每個圖像更改它?

+0

目前尚不清楚「擴大二進制圖像」的含義。 – nkjt

回答

2

您應該使用功能graythresh,它使用Otsu's method

大津方法的想法是徹底嘗試不同的閾值,並看看哪一個最小化每個部分的方差。

+0

我已經使用了graythresh。所獲得的圖像包含較小的ROI,因此爲了擴展該區域,據說在graythresh命令之後,應該使用'im2bw'命令以及閾值,以便它給出具有較大ROI的二值圖像。但是其中一個閾值不適用於其他圖像。 – mel

+1

@mel如果你有「used」'graythresh',那麼你似乎不明白它是如何工作的。 'graythresh' **自適應**決定使用**最佳**閾值。它執行一些基本的統計數據,並假設圖像中只有兩類像素:前景/背景,選擇最大化類間分離度的閾值。請更新你的問題,以便我們知道你真的以後。因此,閾值應隨每張圖像而改變。你是否嘗試過這樣做:'B = im2bw(A,graythresh(A));''A'是圖像? – rayryeng