2017-03-18 175 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”更好。 –