Bezier曲线和BSpline曲线拟合问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.

..

Bzeier曲线和BSpline曲线的插值拟合问题

目录

一、问题重述 (1)

二、Bezier曲线的插值和拟合 (1)

2.1 Bezier曲线的定义 (1)

2.2 Bezier曲线的性质 (2)

2.3 三次Bezier曲线的插值 (2)

2.3.1 工程应用中常用的三次Bezier插值的算法 (2)

2.3.2 改进的三次Bezier插值的算法 (3)

2.3.3 两种Bezier插值的算法比较 (4)

2.4 Bezier曲线的拟合 (4)

三、BSpline曲线的插值和拟合 (4)

3.1 BSpline曲线的定义 (4)

3.2 B样条性质 (5)

3.3 均匀B样条 (5)

3.4 三次B样条插值算法 (6)

3.4 结合实际情况的三次样条插值算法改进 (7)

3.5 两种BSpline插值的比较 (8)

四、Bezier曲线与BSpline曲线的区别和联系 (8)

五、上述算法在实际血管提取中的应用 (9)

一、问题重述

在图像中任意点两个点,软件能自动提取出以这两点为端点的一段血管,要求提取到的血管必须经过客户所点的两点作为提取血管的两个端点。

在OnGetEdge()的函数里,首先通过自动增长获取血管两条边缘的采样点数据,接下来的问题就是要拟合这些采样点,生成两条比较光滑的血管边缘曲线。得到的拟合(插值)曲线有以下4点要求:

1、精确插入客户所点的起始点终点,作为曲线的两个端点;

2、拟合的曲线具有较好的光滑性

3、具有较高的拟合精度和较快的拟合速度

4、要求拟合曲线点八连通

上述的实际问题转化为有序离散点的插值拟合问题。所谓插值拟合,就是通过诸如采样、实验等方法获得若干离散的数据,根据这些数据,得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合。这个过程叫做拟合。插值是曲线必须通过已知点的拟合。常用的插值方法有拉格朗日插值、牛顿插值、埃尔米特插值、样条函数插值等。

其中,样条插值可以使用低阶多项式样条实现较小的插值误差,这样就避免了使用高阶多项式所出现的龙格现象,所以样条插值得到了流行。三次B 样条插值不仅运行速度较快,而且因为其分段连续带来的特有的卓越的性能,有效提高了血管边缘的平滑程度,锯齿状的现象大大减少。本文接下来将主要介绍Bezier 曲线和B 样条的插值拟合。

二、Bezier 曲线的插值和拟合

2.1 Bezier 曲线的定义

【定义1】n 次Bezier 曲线是由n+1个控制点和以Bernstein 多项式为基底共同生成的参数曲线,其数学表达式为:,其中,

0()(),[0,1]n n i i i B t d b

t t ==∈∑为控制点,为Bernstein 基。

(0,...,)i d i n =()(1),0,...,n n i i i

n b t t t i n i -⎛⎫=-= ⎪⎝⎭Fig.1是一条三次的Bezier 曲线,有四个控制点。工程应用上常使用二次或三次Bezier 曲线做采样点的插值拟合以及制图设计。

Fig.1 三次Bezier 曲线

2.2 Bezier 曲线的性质

1、插值于两个端点,即Berize 曲线开始于并结束于。

0d n d 2、Bezier 曲线的起始点(结束点)相切于控制多边形(控制点以此首位连接所形成的封闭的多边形)的第一节(最后一节),即。

''011(0)//,(1)//n n B d d B d d -3、Bezier 曲线是直线的充分必要条件是控制点共线。

2.3 三次Bezier 曲线的插值

插值要求得到的曲线精确的通过采样点,四个控制点决定一条Bezier 曲线,插值M 个点(M>4)设计到曲线拼接连续性的问题,要求达到切线连续。

2.3.1 工程应用中常用的三次Bezier 插值的算法

三次Bezier 曲线的数学表达是为:

03133202313313630()()1,[0,1](1)

33001000i i i d d B t d b t t t t t d d =--⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎡⎤==∈⎣⎦⎢⎥⎢⎥-⎢⎥⎢⎥⎣⎦⎣⎦

∑Fig.2 三次Bezier 曲线的结构

【算法一】

Step 1:已知采样点,两端各自增加一个虚拟控制点,分012,,,...,n P P P P 11,n P P -+别求出的中点。

10011,,...,n n P P P P P P -+011,,...,n M M M +Step 2:分别求出的中点。

01121,,...,n n M M M M M M +01,,...,n D D D

Step 3:将沿着的方向移到,对应的移到。

i D i i D P u u u u r i P 1,i i M M +''1,i i M M +Step 4:保持点不变收缩线段到,且。

i P ''1i i M M +''''1i i M M +''''''110.6i i i i M M M M ++=记为,为。

''i M 1i P ''1i M +2i P Step 5:分别以为4个控制点按照(1)式画出一条三

2111,0,1,...,1i i i i PP P P i n ++=-次的Bezier 曲线,得到的Bezier 曲线插值于每一个采样点,且分片一012,,,...,n P P P P 次连续。

Fig.3 算法一的示意图

2.3.2 改进的三次Bezier 插值的算法

由于采样点本身就存在着误差和噪音等诸多因素的影响,插值于每一个采样点得到的Bezier 曲线不一定能完全反映真实的数据情况。所以不要求精确的插值每一个采样点。改进的算法步骤如下:

【算法二】

Step 1:已知采样点,分别求出的中点012,,,...,n P P P P 01121,,...,n n P P PP P P -。

12,,...,n M M M Step 2:依次以分别画出一条三次的Bezier 011222333445,,,...P M PM M P M P P M P M 曲线。依次下去,若剩下的点不足四个控制点,则添加相同的虚拟点,1n n P P +=,直至满足四个点画一条Bezier 曲线,这样得到的Bezier 曲线精确的插值1n n M P +=与两个端点及部分中间点,且分片一次连续。

相关文档
最新文档