求两个边界之间的距离

8次浏览(最近30天)
郝志
郝志 2021年5月15日
评论道: 郝志2021年5月16日
你好,
我有一个扩展对象,它在不同时间显示不同的轮廓。在这种情况下,我想在各方面分析其扩展速度。
首先,将这两个相邻时间点的轮廓二值化,如下图所示。
  • 边界01
  • 边界02
其次,我使用edge()函数得到沿这两条轮廓线的轮廓坐标。同时,我绘制了从第一个轮廓线开始的梯度箭头,以表示不同边的扩展方向。部分如下所示。
我的问题是,如何从第二个(较大的一个,黑色)轮廓中找到成​​对坐标?在那里,它恰好是交叉点或者最接近箭头扩展线。在定位成对点后,我们可能需要调整梯度箭头一点,并测量其长度以指示扩展速度。先感谢您!

接受的答案

图像分析
图像分析 2021年5月15日
要获取二进制图像中blobs的(行、列)坐标列表,可以这样做
界限= Bwboundaries(面具);
要找到blob #1中每个点到blob #2中每个点之间的距离,你可以这样做:
首先为blob #1获取x和y
b1 ={1}边界;
X1 = B1(:,2);
Y1 = B1(:,1);
首先为blob #1获取x和y
b2 =边界{2};
X2 = B2(:,2);
Y2 = b2(:, 1);
%现在找到了所有点对之间的距离
距离= pdist2([x1, y1], [x2, y2]);
希望你能从那里拿走它。
3评论
郝志
郝志 2021年5月16日
它有效,初步结果如下所示。如果您有更奇妙的想法,请告诉我,非常感谢!

登录评论。

更多的答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!