2014-06-16 53 views
0

我在連接組件的類型中有一個問題。我有一個二進制圖像(onlye 0和1)我運行從MATLAB函數: F =按順序對連接的組件進行排序

1 0 0 1 0 0 0 1 0 0 
1 1 0 1 1 1 0 0 1 0 
0 0 0 0 0 0 0 1 1 1 
1 0 0 0 1 0 1 0 1 1 
1 1 0 0 0 0 0 1 1 1 
0 0 0 1 0 0 1 0 0 0 
0 0 0 1 0 1 1 0 1 1 
1 1 0 0 1 0 0 0 1 0 
1 1 0 1 1 1 0 1 0 0 
1 1 0 0 1 0 0 0 1 0 

[L NUM] = bwlabel(F);

假設他們給我的馬TRIX:

1 0 0 4 0 0 0 5 0 0 
1 1 0 4 4 4 0 0 5 0 
0 0 0 0 0 0 0 5 5 5 
2 0 0 0 6 0 5 0 5 5 
2 2 0 0 0 0 0 5 5 5 
0 0 0 5 0 0 5 0 0 0 
0 0 0 5 0 5 5 0 7 7 
3 3 0 0 5 0 0 0 7 0 
3 3 0 5 5 5 0 7 0 0 
3 3 0 0 5 0 0 0 7 0 

但是你可以在這個resul看到,矩陣的順序是按照列。現在我想將其更改爲相鄰行,這意味着數字4是2,數字5是3 ...等等。 oder左 - >右和上 - >下。我怎麼能做到這一點(閱讀的奧德)?

謝謝你這麼多

+0

一個簡單的解決方案是在bwlabel之前橫切圖像,然後再橫切。查看答案 – ASantosRibeiro

+0

您是否正在嘗試閱讀文字,如您發佈的示例圖片中所示?如果是這樣,請在問題中發佈這些圖片。 – wbest

回答

1
f=f'; 
[L num]=bwlabel(f); 
L=L'; 

這是否解決您的問題?

+0

對不起,這並沒有解決我的問題,因爲如果我用這種方式與圖像: [原創圖片] [1] 的firt - 第二 - 第三聯結組件是:˚F-S - 我喜歡這個數字: ![image 1] [2] 這是錯誤的,因爲我想要1-2-3 -...的順序是H - a - wa - (point of I) - (point of I) - dash-i -i -s ... 感謝您的幫助,但這是不正確的,你有另一種方式嗎? [1]:http://i.stack.imgur.com/nlZo7.jpg [2]:http://i.stack.imgur.com/i1Rky.jpg – user3607620

+1

@ user3607620答案對於你問的問題。 「F」被標記爲第一個組件的原因是因爲「F」是在圖像的第一行中找到的第一個組件。解決這個問題(使'H'成爲第一行中的第一個組件)與你所問的問題明顯不同。 – beaker

+0

@ user3607620在答案對於提出的問題是正確的之前作爲參考。你在這個評論上顯示的內容與問題中的內容不一樣,也不是以相同的方式解決的。如果那是你想要標記的圖像,你應該在之前呈現它們。如果你仔細觀察,你會看到F被首先識別,因爲第一個非零行屬於F,如燒杯所解釋的那樣。我可以給你一個想法來解決它,儘管如果你的問題更復雜和完全不同,不應該放在這裏(注意:問題將是我和短劃線的要點) – ASantosRibeiro

相關問題