基于劣弧演化的点到隐式曲线距离计算方法
【专利摘要】本发明提供一种平面内的点到隐式曲线距离的数值计算方法,具有精确、鲁棒、算法效率高以及对隐式函数的光滑性要求不高等优点。具体步骤是:从一个以所述点为圆心、与隐式曲线相交的圆开始,先不断缩小半径直至同心圆与隐式曲线不相交,再不断二分同心圆的半径,让不相交的内圆与相交的外圆无限接近,最终求得距离。其中圆与隐式曲线的相交性判断采用劣弧演化算法,即对圆周的稠密等分点按其二进制编码逆序码的顺序,判断函数值是否与圆心异号,若异号,则判为相交,不然,根据函数值对劣弧集内的圆弧进行删除、收缩或分裂等演化处理,缩小劣弧集的覆盖范围,直至劣弧集变空,判为不相交。
【专利说明】基于劣弧演化的点到隐式曲线距离计算方法【技术领域】
[0001]本发明涉及数值计算领域,具体地说是一种为电子计算机提供点到隐式曲线距离的数值计算方法。
【背景技术】
[0002]点到隐式曲线的距离计算方法在模式识别、几何建模、计算机视觉、医学影像处理等领域具有重要应用价值,也是数值分析、计算机科学、逆向工程等学科的重要研究基础。由于点到隐式曲线的距离的解析式一般很难得到甚至不可能得到,所以距离的计算通常是数值计算。
[0003]设所求距离是点Ptl到隐式曲线f (X,y) = O的距离,点到隐式曲线距离的数值计算通常有局部法和全局法之分。局部法含有一个迭代过程,如牛顿迭代法,它先以迭代方式求出隐式曲线上与Ptl达到最小距离的点(称为足点),也就是先求解下列关于P的方程的根P*:
【权利要求】
1.一种二维平面内的点Ptl到隐式曲线距离的数值计算方法,其中隐式曲线为某有界区域Ω上有定义且方向导数有界的二元函数f(x,y)依其零值集确定的单分支平面曲线,其特征在于包含如下步骤:寻找一个函数值f (P)与f (Ptl)异号或等于零的初始点P,此时以Ptl为圆心、以I IpctpI I为半径的圆必与隐式曲线相交;置内半径为O,外半径为I IpcrpI I ;再取中值半径为内半径与外半径之平均值,然后判断以Po为圆心、以中值半径为半径的圆与隐式曲线是否相交,若相交,外半径下调为中值半径,若不相交,内半径上调为中值半径;再取中值半径、判断相交性、调整内半径或外半径,如此反复,直至外半径与内半径之差小于容许误差,返回内半径与外半径之平均值作为点Ptl到所述隐式曲线的距离。
2.如权利要求1所述的数值计算方法,其特征在于,其中判断圆与隐式曲线是否相交的方法包含如下步骤: (1)取最小的正整数n,使圆周2n等分后每段圆弧长小于容许误差,圆周等分后依次分布的等分点为啪,qi,……,V-1, q2rt=qo; (2)置初始值i= O,初始劣弧集A= {[O,2n]},劣弧集是圆上函数值可能与f (Ptl)异号的圆弧的集合,其元素形如[S,t],其中S、t分别是圆弧两端的等分点标号,[S,t]表示由等分点qs,qs+1,……,qt连成的圆弧,初始劣弧集只有一个从%连到Q2"的单个圆弧,其实为整个圆周; (3)将i的η位二进制数表示Id1Id2......bn逆序,得到二进制数bn......1d2Id1,其表示的整数为j ; (4)若q」不落在劣弧集A的任一圆弧内,跳至步骤(7); (5)计算f(qP,若该函数值与f(Ptl)异号,结束判断,返回结果为“圆与隐式曲线相交”,否则,进行劣弧演化,即根据f(qj值与方向导数上界M排除f(q)肯定与f(Ptl)同号的等分点q,对A中的圆弧进行删除、收缩和分裂处理,缩小劣弧集的覆盖范围; (6)若劣弧集A=0,结束判断算法,返回结果为“圆与隐式曲线不相交”; (7)置i为i+Ι,若i= 2n,结束判断算法,返回结果为“圆与隐式曲线不相交”,否则转至步骤⑶。
3.如权利要求2所述的相交判断算法,其特征在于,其中步骤(5)中的劣弧演化包含如下步骤: ①若 f(qj) I > 2Mr,置 A=0,结束; 其中: r为圆的半径; M为f(x,y)的方向导数的上界,即
【文档编号】G06F19/00GK103559400SQ201310542392
【公开日】2014年2月5日 申请日期:2013年10月30日 优先权日:2013年10月30日
【发明者】胡明晓, 吴文国, 谢祖明, 张新瑶 申请人:温州大学