-1

我正在使用 Matlab 中的图像分割。

我需要找到一条垂直于一组点的线,以计算该线与一组点之间的最大距离。
这是问题的一个例子:

图像示例

红点表示轮廓的凹度,该点是从轮廓的曲率中找到的。

黑线和绿点是线的极限,是手动绘制的,以显示我正在寻找的结果。

找到线后,接下来的任务是计算线与以黄色突出显示的轮廓部分之间的最大距离。

任何人都可以提出一个可能的解决方案吗?

4

1 回答 1

1

要画一条线,您只需要在该点获得函数的导数,您可能还记得基本代数。

你可以用有限差分来做,但我建议你使用超过 2 个点,比如 5 或 7 来近似那个点的导数。然后画线就像

y-y0=f'(x) (x-x0)

y0,x0点本身在哪里。由于您没有轮廓的函数表示,因此要计算轮廓与线的横截面,最好的方法是对其进行数字检查。

此外,您可以创建一个包含轮廓及其内部所有内容的二进制图像,然后使用improfile线条中但在白色斑点之外的点。由于该值等于 1,因此路径上的线的积分将是轮廓内线的总长度。

编辑:我看错了,我虽然你想要这条线的距离。点和线的距离是基本代数,google是你炸的

于 2016-07-27T14:14:39.200 回答