2017-03-18 78 views
0

我有一個由'1'(磁盤)孔構成的二維矩陣50x50,其餘值爲零。 (矩陣是二進制的)。我只想返回對象輪廓矩陣中的位置,如下圖所示。 我試過命令「imcontour」(因爲我的情況也是一個二進制圖像)。這是好的,但輪廓的某些給定位置高於矩陣的大小,這意味着它可能以像素爲單位給出位置而不是矩陣的索引。 我也嘗試過「輪廓」和「邊界」,但徒勞無功。 任何想法?
enter image description here在matlab中返回2D矩陣中的輪廓位置?

+0

'imcontour'應該可以工作,你的代碼肯定有錯誤。請提供最少量的代碼。 – Ratbert

回答

1

如果我這樣做是正確,嘗試[X,Y] =找到(M)中提取位置,並嘗試IND =找到(M)在矩陣中提取非零值的索引號。

+0

在cercle內部有'1'和'0'外部。該圖只是輪廓。 –

+0

然後你正在尋找邊界。只需使用bwperim函數。 [x,y] = find(bwperim(M)) – Ozcan

+0

非常感謝!這就是我一直在尋找的東西。我發現另一個解決方案是「邊緣」,但「bwperim」更好。 –