如何 return 二维矩阵中轮廓的位置

How to return the positions of a contour in a 2D matrix

我有一个 50x50 的二维矩阵,由一个“1”(圆盘)的孔组成,其余值为零。 (矩阵是二进制的)。我只想 return 对象轮廓矩阵中的位置如下图所示。

我尝试了命令"imcontour"(因为我的案例也是二进制图像)。这很好,但是轮廓的一些给定位置高于矩阵的大小,这意味着它可能给出以像素为单位的位置而不是矩阵的索引。

我也尝试了 "contour" 和 "boundary" 但没有成功。

如果我做对了,请尝试 [x,y]=find(M) 提取位置并尝试 ind=find(M) 提取矩阵中非零值的索引号。如果您正在寻找边界,只需使用 bwperim 函数:[x,y]=find(bwperim(M))