在Matlab中使用光滑曲线连接点


有时候,我们需要找到一个好办法来描出目标的轮廓,我们希望可以在matlab里用光滑曲线来勾画物体。在matlab的 Image Processing Toolbox中,有一些交互式的工具用来画线。不过,使用 imfreehand 之类的函数做这件事并不容易,因为我们很难用鼠标精确的画图。除非我们去买一个手写版,至少很多人都没有这个设备。

impoly 这个函数可以让我们更好的在目标边界上选择点,然后它可以构建一个多边形来逼近这个目标。不过,如果我们要光滑拟合,就需要选非常多的点才行。

我们现在想要做的是使用光滑曲线来连接多边形的顶点,这时候我们就可以用到Will的 hobbysplines 这个程序。它可以使用贝赛尔曲线来连接一些点。这个函数效果不错,不过需要额外添加一些控制点来调节贝赛尔曲线的形状。而且在终点的时候,难以做到光滑的闭合。

通过添加23个控制点,我们可以光滑逼近一个不规则形状。如果有需求,这个函数还是值得一试。

相关内容