我正在使用Matlab中的图像分割。
我需要找到一条垂直于一组点的直线,以计算该直线与该组点之间的最大距离。
以下是问题的一个例子:
红点代表轮廓的凹度,该点是从轮廓的曲率中找到的。
手动绘制黑线和绿点,这是线的极限,以显示我正在寻找的结果。
找到线后,下一个任务是计算线与以黄色突出显示的轮廓部分之间的最大距离。
有人可以建议一个可能的解决方案吗?
答案 0 :(得分:0)
要绘制一条线,你只需要在那一点得到函数的导数,就像你可能记得的基本代数一样。
你可以用有限的差异来做,但我建议你使用超过2个点,比如5或7来近似那个点的导数。然后绘制线条就像
一样简单y-y0=f'(x) (x-x0)
其中y0,x0
是点本身。由于您没有轮廓的函数表示,要计算线与轮廓的截面,最好的方法是用数字方式检查它。
此外,您可以使用轮廓及其内部的所有内容创建二进制图像,然后使用improfile
在行中但在白色斑点之外的点。当值等于1时,路径上的线的积分将是轮廓内线的总长度。
编辑:我误读了,虽然你想要距离线路。点和线之间的距离是基本代数,谷歌是你的油炸