0
我有一個二進制圖像,其上有1像素寬度的非閉合曲線。我想抓住這條曲線作爲點的列表(按照正確的順序)。我發現它試圖包裝所有非零像素,因此在這種情況下bwboundaries
函數返回重複點:Matlab中的邊界和輪廓
>> A = [0 0 0; 1 1 1; 0 0 0];
>> b = bwboundaries(A)
ans =
[5x2 double]
>> b{1}
ans =
2 1
2 2
2 3
2 2
2 1
bwtraceboundary
做同樣的
>> bwtraceboundary(A, [2 1], 'E')
ans =
2 1
2 2
2 3
2 2
2 1
有沒有得到像矩陣的任何標準方法[ 2 1; 2 2; 2 3]立即?
謝謝您的回答。然而'獨特的'分類點和打破輪廓。我認爲使用'ind = find(all((points(3:sz,:) == points(1:sz - 2,:))'))+ 2來改進「邊界」輸出是簡單的。 points = points(1:ind - 1,:);' – Andrey 2011-05-17 12:35:54
您可以在'unique'完成工作後恢復原始順序。我相應地更新了我的答案。 – groovingandi 2011-05-17 14:25:36