基于多分辨分析的小波光顺方法

文档序号:6545977阅读:352来源:国知局
基于多分辨分析的小波光顺方法
【专利摘要】本发明公开了一种基于多分辨分析的小波光顺方法,主要包括“数据点的读入与处理”、“二进小波光顺”、“任意分辨率小波光顺”三个步骤,实现了对具有任意控制顶点曲线的小波光顺,并可根据曲线控制顶点数自动判断其小波尺度,以选择最适合的计算步骤。本发明在曲线光顺的效率和适应性方面达到了较好的平衡。本发明的推导与计算遵循多分辨分析理论,不存在插值与拟合等近似操作,能够实现光顺曲线的精确重构,符合小波分析的精髓。
【专利说明】基于多分辨分析的小波光顺方法
【技术领域】
[0001]本发明涉及一种基于多分辨分析的小波光顺方法,属于逆向工程领域。
【背景技术】
[0002]受到制造精度和测量精度的限制,零件的数字化过程会产生一定数量的噪声和误差,这对曲线曲面的逆向精度及其光顺性会产生一定的不良影响。作为逆向工程中必不可少的关键一环,曲线曲面光顺技术可以尽可能地消除这些影响,从而提高逆向工程的质量。传统光顺算法虽然思路简单清楚,但是对于测量数据较大的情况,计算效率极低。逆向工程领域期待一种能够尽可能提取曲线曲面本质特性的光顺算法。多分辨分析技术的出现,将这种期待变为了可能。
[0003]多分辨分析作为一种能刻画数据内部相关性的新时频分析数学工具,同时具有良好的时域局部性和频域局部性。随着该技术的日渐成熟,多分辨分析开始被应用于计算机图形学。1994年,Quak等应用多分辨分析工具,针对由(j为二进尺度)个控制顶点确定的曲线,首次提出了基于闭区间B样条小波的曲线分解重构算法。针对多分辨光顺这一新领域,国内外许多学者对此展开了研究。Ceruti等基于二进小波光顺算法,构造了快速的多细节层次(Levels ofDetail, L0D)滤波器组,实现了 A级曲线的小波光顺。潘洋宇基于经典多分辨分析理论,结合第二代提升格小波,通过分割、预测、更新等步骤所组成的提升步,推导了准均匀三次B样条曲线的提升格小波表示方法,实现了准均匀三次B样条曲线的光顺。Hussein等基于提升小波框架,将其推广到自由曲面的表示,并实现了不规则复杂自由曲面的过滤与光顺。
[0004]上述研究虽然实现了曲线曲面的小波光顺,但为了降低小波构造的难度,在二进尺度的要求下,只能对控制顶点数满足一定要求(24(r-l) Ir为阶数)的曲线曲面进行光顺,事实上,在逆向工程中,实际测量的点的数量是任意的,对应的控制顶点数也是任意的,此时上述算法将不再适用。通常把上述算法称为二进小波光顺。
[0005]对于曲线曲面控制顶点数任意的情况,潘洋宇等通过节点矢量的改变来解决该问题,其主要思路为增加控制顶点的数量以满足二进小波光顺要求。Wang等根据给定的权重公式,通过对节点矢量的去除,重构了正交非均匀样条小波,从而实现了 NURBS曲线曲面的小波光顺与精简。ParuSadeghi等两位学者针对给定的节点矢量,结合离散范数概念,采用最小二乘拟合算法,构造了一种双正交非均匀B样条小波,实现了任意自由曲线的多分辨光顺,该算法由于避免了内积运算,计算效率得到了很大的提高。但是上述算法都存在近似计算,无法对曲线曲面进行精确重构。通常把上述对控制顶点数量没有具体要求的算法称为任意分辨率小波光顺。

【发明内容】

[0006]针对上述问题, 申请人:在二进小波光顺算法研究的基础上,提出一种基于多分辨分析的小波光顺方法,实现对具有任意控制顶点曲线曲面的小波光顺;同时利用C++语言和C++数值分析类库,提出小波光顺的软件实现方法,根据曲线控制顶点数自动判断其小波尺度,以选择最适合的计算模块,在曲线光顺的效率和适应性方面达到较好的平衡。
[0007]本发明的技术方案如下:
[0008]一种基于多分辨分析的小波光顺方法,包括以下步骤:
[0009](一 )数据点的读入与处理:
[0010]读入原始数据点,并定义为矩阵变量;数据格式为每行三个数据,分别表示一个点的x、y、z坐标;读入原始数据点后,将型值点反算成控制顶点,并计算控制顶点的数量s ;由于本发明研究的是三次B样条小波,对应的阶数r = 4,则根据m = s_3计算对应的有理尺度m ;按式⑴计算对应的二进尺度j:
[0011]j = lg(m)/lg2 (I)
[0012]如果j为整数,则符合二进小波光顺的要求,执行步骤(二);如果j不为整数,则不符合二进小波光顺要求,执行步骤(三);
[0013](二)二进小波光顺:
[0014]根据式(I)确定的二进尺度j,通过重构矩阵初始化公式(2)、(3)计算光顺过程中用到的重构矩阵P」和Qj ;
[0015]
【权利要求】
1.一种基于多分辨分析的小波光顺方法,其特征在于包括以下步骤: (一)数据点的读入与处理: 读入原始数据点,并定义为矩阵变量;数据格式为每行三个数据,分别表示一个点的x、y、z坐标;读入原始数据点后,将型值点反算成控制顶点,并计算控制顶点的数量s ;由于本发明研究的是三次B样条小波,对应的阶数r = 4,则根据m = s_3计算对应的有理尺度m ;按式⑴计算对应的二进尺度j:j = lg(m)/lg2 (I) 如果j为整数,则符合二进小波光顺的要求,执行步骤(二);如果j不为整数,则不符合二进小波光顺要求,执行步骤(三); (二)二进小波光顺: 根据式(I)确定的二进尺度j,通过重构矩阵初始化公式(2)、(3)计算光顺过程中用
2.根据权利要求1所述基于多分辨分析的小波光顺方法,其特征在于:所述步骤(二)的软件实现方法为,通过编制如下二进小波光顺函数实现:
(1)doubleCubicBSpline(double t,int m, int k); 该函数定义一条准均匀三次B样条基函数钟(mt-k) 11 e [0,I],其中m为伸缩尺度,对于二进小波光顺而言,m = 2J ;k为平移尺度,其含义为B样条空间里的第k个样条,k E [I, 2J+3];
(2)voidInitPj(matrix&Pj, int j); 该函数针对二进尺度j,计算相应的重构矩阵Pp并将结果保存于矩阵变量Pj中;
(3)voidInitQj(matrix&Qj, int j); 该函数针对二进尺度j,计算相应的重构矩阵%,并将结果保存于矩阵变量Qj中;
(4)doubleDyadicffavelet(double t,int m, int k); 该函数为准均匀三次B样条函数f (mt-k)对应的二进小波基函数Ψ (t, m, k) |te [0,I],其中m为伸缩尺度,对于二进小波光顺而言,m = 2J,k为平移尺度,其含义为小波样条空间里的第k个样条小波,k e [I, 2jM];
(5)void DffFairing(matrix&Cj, int j, matrix&Cjj, matrix&Djj); 该函数为二进小波光顺函数,可以根据原始曲线的控制顶点Cj及对应的尺度j,计算光顺后曲线的控制顶点CV1以及对应的细节部分控制顶点Dy,并将结果保存到对应的矩阵变量 Cj j、Djj 中;
(6)voidDffRecon(matrix&Cj, int j, matrix&Cjj, matrix&Djj); 该函数为二进小波重构函数,可以根据待重构曲线的控制顶点CV1以及相应的细节部分控制顶点Dy,重构原始曲线的控制顶点(V需要强调的是,此函数中的尺度j为待重构曲线的尺度。
3.根据权利要求1所述基于多分辨分析的小波光顺方法,其特征在于:所述步骤(三)的软件实现方法为,通过编制如下任意分辨率小波光顺函数实现:
(I)double CubicBSpline (double t,int m, int k); 该函数定义一条准均匀三次B样条基函数# (mt-k) 11 e [0,I],其中m为伸缩尺度,k为平移尺度,其含义为B样条空间里的第k个样条,k e [I, m+3];
(2)doubleMultiBSplineBSpline (double t, vector&p); 该函数计算两个样条函数之间的乘积CubicBSpline (t, m, k) XCubicBSpline (t, η, I),向量变量 P 中,P [I] = m, P [2] = k, P [3] = η, p[4] = I。
(3)voidInnerProductBB (matrix&BnBm, int m, int η); 该函数计算内积矩阵BnBm= [<Φη|Φπ>],并将结果保存到矩阵变量BnBm中。积分区间为[O, I];
(4)voidInitQmn(matrix&Qmn, matrix&BnBm, int m, int η); 该函数根据给定的光顺尺度m、η计算重构矩阵Qmn,并将结果保存于变量Qmn中;
(5)doubleBSplineffavelet(double t,int m, int k, matrix&Qmn); 该函数根据公式(8)计算B样条小波基函数,返回从尺度m向尺度η光顺过程中,第k条小波对应t的函数值;
(6)double Multiffaveletffavelet(double t, vector&p, matrix&Qmn); 该函数计算两个小波基函数之间的乘积,BSplineffavelet (t, m, k, Qmn) XBSplineffavelet (t, m, I, Qmn),向量变量 p 中,P [I] = P [3] = m, p[2] = k, p[4] = I ;
(7)double MultiffaveletBSpline(double t, vector&p, matrix&Qmn); 该函数计算小波基函数与B样条基函数之间的乘积,BSplineffavelet (t, m, I, Qmn) XCubicBSpline (t, m, k),向量变量 p 中,P [I] = P [3] = m, p[2] = k, p[4] = I ;
(8)voidInnerProductffff(matrix&ffnffn, int m, int η); 该函数用来计算小波基函数的内积矩阵WnWn= [<ψη| ψη>],并将结果保存到矩阵变量Wnffn中。积分区间为[0,I];
(9)voidInnerProductffB(matrix&ffnBm, int m, int η); 该函数用来计算小波基函数与B样条基函数之间的内积矩阵WnBm = [<Ψη| Φω>],并将结果保存到矩阵变量fcBm中。积分区间为[0,1];
(10)voidARffFairing(matrix&Cm, matrix&Cn, matrix&Dn, int m, int η); 该函数根据给定的尺度m和n,将原始曲线的控制顶点Cm分解成光顺曲线的控制顶点Cn和细节部分的控制顶点Dn,并将结果保存到对应的矩阵变量Cn和Dn中;
(11)voidARffRecon(matrix&Cm, matrix&Cn, matrix&Dn int m, int n); 该函数根据给定的尺度m和n,将光顺曲线的控制顶点Cn和细节部分的控制顶ADn,精确重构成原始曲线的控制顶点Cm,并将结果保存到矩阵变量Cm中。
【文档编号】G06F17/50GK103984810SQ201410193964
【公开日】2014年8月13日 申请日期:2014年5月8日 优先权日:2014年5月8日
【发明者】纪小刚, 薛杰, 杨艳, 李楠 申请人:江南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1