2013-07-19 56 views
0

假設我有一個二進制圖像BW並且我使用bwlabel來查找連接區域1.我想查找該結果的最大組(不是0)以及該組在圖片中的位置。這個怎麼做?通過使用bwlabel計算最大的連接對象/組件

+0

你有什麼嘗試? – CTZStef

+0

起初我沒有嘗試任何東西,因爲我在matlab中很新,不知道如何去做。然後我嘗試了下面的答案,並知道這對我來說很有用。 –

+0

好,那麼你需要編輯你的問題:) – CTZStef

回答

1

有幾種方法來完成,例如直方圖中的非零元素的含量:

L=bwlabel(I); 
[a val]=hist(L(:),1:max(L(:))) 
val(a==max(a)) 

將產生最發生的歷史

另一種方式是使用平板狀的值:

a=tabulate(L(:)) 
a(a(:,2)==max(a(2:end,2)),1) 

tabulate在向量L(:)中創建數據的頻率表。的信息被安排如下:

第一柱 - L的

的唯一值

第二列 - 每個值的百分比

等 - 每個值的

第三柱實例數...

+0

謝謝你natan,我認爲製表將相當工作,但在此命令「a(1,max(a(:,2))))」我得到一個錯誤「嘗試訪問a(1,1.60738e + 06);索引超出範圍,因爲大小(a)= [7711,3]「。這是什麼意思?並與表格,它仍然計數零(0)... –

+0

我已糾正該行,所以它會給非重複的最重要的值...但爲什麼不使用'hist'? – bla

+0

非常感謝你,我沒有使用hist,因爲我認爲我比你的代碼中的hist更好地列出了表格^^! –