2016-09-28 28 views
0

我正在使用Matlab從圖像中提取數據,我使用函數im2bw以用於以後的bwlabel灰色圖像,但閾值不適用於所有圖像,因此圖像增益噪聲,並且獲得的數據不具有代表性。 如何配置閾值來解決這個問題?函數graytresh沒有給出一個好的閾值,存在任何其他方法來解決這個問題? 我使用了很多圖片(有時會有一萬多),我無法一個一個地運行。 圖像是游泳的魚,我需要小心。 感謝您閱讀我的問題!在迭代中使用im2bw具有大量圖像

我用graytresh在圖像BW這樣http://imgur.com/TEaWF1y -Sometimes上的圖像失真是太多的Dropbox與圖像https://www.dropbox.com/sh/xve7oe84xcfj9yt/AACA0dYrK_m7o8Oie0KWWR-2a?dl=0初始圖片,用失真和體重的圖像斌圖像

+0

嘗試'otsuthresh'。 – NKN

+0

@NKN''otsuthresh'與'graythresh'有什麼不同?兩者都使用大津的方法,所以結果可能會完全一樣。 – hbaderts

+0

@JVidal所以你使用相同的門檻所有圖像?你如何找到這個門檻?只在一個圖像上? – hbaderts

回答

0

有確定二值化無數方法閾值。這取決於圖像。無法給出適用於任何圖像的一般答案。

我建議你選擇一組具有代表性的圖像,並比較大多數常見閾值方法的結果。

全局閾值根本不適合。也嘗試本地閾值方法。

上閾值方法閱讀本作廣泛的比較: http://pequan.lip6.fr/~bereziat/pima/2012/seuillage/sezgin04.pdf

0

我在尋找魚一點點嘗試,似乎可以用一個標準化的綠色,藍色差獲得相當不錯的成績 - 這僅僅是差異在綠色和藍色分量之間,歸一化到範圍[0,1]。是我使用的步驟如下:

  • 做一個自動水平對比度拉伸空間的事情了更好的
  • 計算歸綠 - 藍差異,(綠 - 藍)/(綠+藍)
  • 在25%閾值

我只是用的ImageMagick在命令行。它安裝在大多數Linux發行版上,可用於OSX和Windows。我相信你可以在Matlab做一樣的:

convert fishy.jpg -auto-level -fx "(g-b)/(g+b)" -threshold 25% result.jpg 

enter image description here

如果我有10,000張做的,我會用GNU並行讓我所有的CPU內核並行工作:

parallel 'convert {} -auto-level -fx "(g-b)/(g+b)" -threshold 25% results/{}' ::: fish*jpg 
+0

謝謝的意見,但我需要更多的激情:( – JVidal