首页 / 专利库 / 电脑编程 / 算法 / 光线跟踪算法 / 一种面向点云物体的三维素描画模拟方法

一种面向点物体的三维素描画模拟方法

阅读:567发布:2020-05-18

专利汇可以提供一种面向点物体的三维素描画模拟方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种面向点 云 物体的三维素描画模拟方法,包含以下步骤:利用移动最小二乘法计算每点的 曲率 信息,设定 阈值 提取点云物体中的谷脊点,并利用主成份分析法分别连接脊点与谷点,形成脊线和谷线并进行优化;给定z轴正方向为视线方向,将模型点集投影到xoy平面上获取二维点集,提取其轮廓点,利用最短距离连接法将轮廓点进行连接;根据步骤1、得到的脊线和谷线,利用改进后的光线追踪方法对脊线和谷线的可见性进行判断;设定虚拟 光源 ,给出一种阴影区域界定方法,划分阴影区域范围,同时在特定的阴影区域内,分析阴影线条的 亮度 分布情况,来处理阴影区域的线条亮度表达,最后结合线条模型和阴影区域表达,从而达到素描画的效果。,下面是一种面向点物体的三维素描画模拟方法专利的具体信息内容。

1.一种面向点物体的三维素描画模拟方法,其特征在于,具体包括以下步骤:
步骤1、利用移动最小二乘法计算点云模型每点的曲率信息,设定阈值提取点云物体中的脊点和谷点,并利用主成份分析法分别连接脊点与谷点,形成脊线谷线并进行优化,刻画三维点云模型的内部特征;
步骤2、给定z轴正方向为视线方向,将点云模型点集投影到xoy平面上获取二维点集,提取其轮廓点,利用最短距离连接法将轮廓点进行连接形成轮廓线;
步骤3、根据步骤1得到的脊线和谷线,利用改进后的光线追踪方法对脊线和谷线的可见性进行判断;
步骤4、设定虚拟光源,给出一种阴影区域界定方法,划分阴影区域范围,同时在特定的阴影区域内,分析阴影线条的亮度分布情况,来处理阴影区域的线条亮度表达,最后结合线条模型和阴影区域表达,从而达到素描画的效果。
2.根据权利要求1所述的一种面向点云物体的三维素描画模拟方法,其特征在于,所述步骤1具体按照以下步骤实施:
步骤1.1,根据曲率大小提取脊点和谷点
利用移动最小二乘法拟合曲面,计算每点的曲率,ki为点pi绝对值较大的主曲率,遍历点云模型中所有点绝对值较大的主曲率,得到最大曲率kmax和最小曲率kmin,设定一个阈值曲率参数0<α<1,满足公式(1)的点是谷点,满足公式(2)的点为脊点,
ki<0,ki<αkmin 0<α<1              (1)
ki>0,ki>αkmax 0<α<1              (2)
其中,α设置为0.1~0.3;
步骤1.2,分别连接脊点和谷点形成脊线和谷线
任选一个脊点或者谷点p,利用k-d树,选取距离点p小于r的邻域点集,根据主成份分析法计算出主轴矢量,然后将邻域点投影到p点和主轴矢量确定的直线上,取投影最远的点进行连接,并将该点作为新的生长点继续生长,找到下一个生长点进行连接,重复执行,直到找不到下一生长点为止,生长点的连接形成脊线和谷线;
步骤1.3,对步骤1.2得到的脊线和谷线进行优化。
3.根据权利要求2所述的一种面向点云物体的三维素描画模拟方法,其特征在于,所述步骤1.2的具体算法步骤为:
步骤1.2.1,根据初始生长点寻找邻域点集
从脊点或者谷点的集合中,任取一点p,利用k-d树,选取距离点p小于r的邻域点集NBHD(p)={pj,||p-pj||<r,j=1,2...k},pj为距离点p小于r的点,r取值为0.1;
步骤1.2.2,主轴矢量投影
针对p点的邻域点集NBHD(p),点p的三阶协方差矩阵M为:
其中,为点p的k个邻近点的平均位置
通过奇异值分解对点p的三阶协方差矩阵M进行特征值分解,得到协方差矩阵M的特征值λ3>λ2>λ1>0,选取协方差矩阵M的最大特征值λ3对应的特征向量作为主轴矢量,然后由p点和主轴矢量确定一条直线,将NBHD(p)内的每个点都投影该直线上,选取投影最远的两个端点作为下个生长点即新的生长点,同时从NBHD(p)中将该点删除;
步骤1.2.3,从新的生长点开始,重复步骤1.2.2的操作,找寻下一生长点,当找寻不到新的生长点时,该条脊线或者谷线生长结束;
步骤1.2.4,从脊点或谷点集合中,另取一点,重复步骤1.2.1~1.2.3的操作,直到脊点或谷点集合中无任何点,证明所有脊线谷线生长完毕。
4.根据权利要求2所述的一种面向点云物体的三维素描画模拟方法,其特征在于,所述步骤1.3的具体算法步骤为:
步骤1.3.1,从脊线或谷线集合中任取一条线段,假设该线段两个端点为e1和e2,线段e1e2的向量 p1和p2是另外一条脊线或谷线的两个端点,线段p1p2的向量
利用公式(4)计算两向量的夹,利用公式(5)计算两个端点的距离,若两
向量的夹角小于θ,两端点距离小于ωr,并且两者方向相反,即 则将e1e2和
p1p2相连,形成一条脊线或者谷线,
其中,θ取值为10°,r为距离半径,取值为0.1,ω取值2~5;
步骤1.3.2,若两线段夹角较大,并且两端点距离较大,则计算线段p1p2的中心点p12,若p12和e1距离较近,则将点p12和e1进行连接形成一条脊线或者谷线,否则连接若p12和e2;
步骤1.3.3,分别遍历脊线谷线中每一个端点,重复步骤1.3.1、步骤1.3.2操作,直到所有的脊线谷线遍历完成为止。
5.根据权利要求1所述的一种面向点云物体的三维素描画模拟方法,其特征在于,所述步骤2具体按照以下步骤实施:
步骤2.1,将点云模型投影到二维平面,针对于三维点云模型,将z轴正方向作为视线方向,将点云模型平行投影到xoy平面上,从而得到二维点集;
步骤2.2,针对二维点集,首先选取模型最左边的点,即x值最小的点,作为边界点起始点pm,以该点pm为坐标原点,建立局部坐标系,建立局部坐标系,利用k-d树,找到点pm的k个邻近点 记k邻近中第j个点为pmj,根据pmj的x坐标值xmj和y坐标值ymj,
将pmj划分到pm点建立的局部坐标系的四个象限中,若xmj>xm同时ymj>ym,则pmj在第一象限;若xmj>xm同时ymjym,则pmj在第二象限;若xmj步骤2.3,若四个象限中,有一个象限中没有点,则pm点是边界点;若四个象限里都有点,利用公式(6)求取某一象限中任意两点pmi,pmj与pm点组成向量的夹角,选取所有相邻点夹角最大的角度,若最大角度大于阈值η时,则pm点为边界点,若最大角度小于阈值η时,则p点不是边界点,其中η=40°,
步骤2.4,当视点发生改变时,转动点云模型,三维点云坐标发生旋转变化,当转动一个角度时,重新计算转动后的点云模型坐标,将旋转后得到的点云模型,重复执行步骤2.1~
2.3处理,得到旋转后的轮廓点;
步骤2.5,轮廓点的连接,从轮廓点集中任取一点c作为初始生长点,将点c进行标记,选取距离点c小于半径r的邻域点集NBHD(c),将NBHD(c)中的每个元素,按照和点c距离从小到大排序,从NBHD(c)中找到距离点c最小的点ci,连接cci,计算方向向量 并将点ci作为新的生长点,利用点ci的坐标、方向向量 构造直线l,然后选取距离点ci小于半径r的邻域点集NBHD(ci),依次从NBHD(ci)选取和l距离小于r的点作为下一个初始生长点,直到轮廓点集合中所有的点都被标记。
6.根据权利要求2-4任一项所述的一种面向点云物体的三维素描画模拟方法,其特征在于,所述步骤3具体按照以下步骤实施:
步骤3.1,特征线可见性分析,根据步骤1得到的脊点谷点集合A,利用改进的光线跟踪算法对特征线的可见性进行判断,假设点集B为三维点云模型中的点,设定视线方向为z轴正方向,模型上z坐标极小值点为视点,对于脊点谷点集合A的每一个点p(x,y,z),利用k-d树,选取点p的k近邻点KNBHD(p)={p1,p2,p3,…,pk},计算k近邻点距离点p的平均距离构造圆柱体,以垂直于视线并且过p(x,y,z)的面为底面,
底面圆半径为λDis,和p(x,y,z)的垂直距离为高,判断圆柱体和模型点集B的交点,如果存在除p(x,y,z)之外的交点pi(xi,yi,zi),且|zi-z|>r,则说明p(x,y,z)被点pi(xi,yi,zi)遮挡,对于未被遮挡的点,重复执行步骤1.2、步骤1.3,完成特征线的连接与优化,其中λ取值为1-10;
步骤3.2,线条粗细的计算,对于可见的特征线,选取z坐标值最小的点作为初始视点,沿着z轴正方向的直线为视线,采用平行投影的方式,遍历三维模型中所有点的z坐标值确定最大z值zmax和最小z值zmin,然后依次在特征线集合中取出点p,其z坐标为zp,取出p在特征线中前一个节点pfront,设两点pfront,p组成一条线段pfrontp,取线段pfrontp中点为pmid,根据式(7)可得线段pfrontpmid的宽度值;同理,根据式(8)可得线段pmidp的宽度值,其中, β设置为10,cofi为控制因子,
cofi设置为1.0,根据深度的不同,线条粗细也随之变化,距离视点越近,线条越粗;距离视点越远,线条越细。
7.根据权利要求1所述的一种面向点云物体的三维素描画模拟方法,其特征在于,所述步骤4具体按照以下步骤实施:
步骤4.1,投影点确定,将z轴正方向作为视线方向,设置与xoy平面夹角45度并且平行于xoz平面的方向为光线方向,对于可见特征点集V中任一点pi(xi,yi,zi),利用k-d树,选取点p的k近邻点KNBHD(p)={p1,p2,p3,…,pk},计算k近邻点距离点p的平均距离
三维点云模型点集中任一点pj(xj,yj,zj),构造矩形,宽为
起始点坐标 结束点坐标 如果
并且 则pj是pi的投影点,其中 取值为1-5;
步骤4.2,阴影线条的生成,假设特征线L由p1、p2、p3连起来的折线,p1、p2、p3的投影点分别为 的方向向量 将p1沿着方向向量 移动一段距离
t,可以得到新的一点pc,即 同理,计算 的方向向量 将p2
沿着方向向量 移动一段距离t,得到新的一点pk,连接点pc、pk形成一条线段pcpk,此线段为一条特征线下的阴影线条,同理随着t取多个值时,可以得到多条同一个特征线下的阴影线条,给定t的取值是非线性增长的,由公式(9)计算得到,
步骤4.3,阴影区域线条灰度的确定,首先构造一个渐变灰度模型,其像素值包括白色,以及和不同程度的灰色,灰度呈现渐变颜色,将一条特征线的阴影区域,划分成n,根据该块离特征线的远近,对应已定义的颜色灰度值,从而形成阴影区的灰度变化,假设特征线L由线段p1p2和线段p2p3构成,对于p1p2,通过步骤4.2可以获得在特定光照下的多条阴影线条,p1p2和多条阴影线构成了多个封闭的四边形,将四边形根据预先构造的渐变灰度模型进行上色。

说明书全文

一种面向点物体的三维素描画模拟方法

技术领域

[0001] 本发明属于非真实感渲染技术领域,涉及一种面向点云物体的三维素描画模拟方法。

背景技术

[0002] 素描画能够突出特征区域,简化图像显示,增加了图像的可理解性。例如:在医学领域中,素描画的医学图像是最简单、最直接的表达信息的方式,相比文字它更加直观。相比采用真实的器官照片,素描出的图像更容易让读者接受,可以将主要的部分或者不明显的重点部分更清晰的描绘出来,使人们对重点器官有一个更清晰、直观的了解;在工业领域中,一些机械设备的草图或者维修说明书中,使用素描画草图来摒弃多余部分,集中刻画重要细节特征,简化物体外形特征,易于观察者理解,更重要的是素描画的插图可以将不同层次的细节展露出来,让使用者能够获取重要的说明信息。
[0003] 从艺术度来看,艺术素描画是对自然景物的抽象和绘画者主观情绪的表达。因为艺术的目的不仅仅是直白的表露,更重要的是自身精神世界的展露。例如绘制人物肖像时,采用素描画,精简动作,只留其神韵,更能体现出人物的内心世界。由于素描画技术独特的特性,使其在许多领域中被广泛应用。
[0004] 现有方法针对非真实绘制素描画技术概括为两大类:一类是面向二维图像的素描画绘制,一类是面向三维模型的素描画绘制。
[0005] 1、面向二维图像的素描画绘制
[0006] 《Paint by numbers:Abstract image representations》提出了基于笔划的半自动绘制系统,首先建立绘制中的笔划纹理模型,用户利用鼠标将笔划组合起来绘制图像来达到素描画的效果。
[0007] 2015年,《A Generation Method of Chinese Meticulous Painting Based on Image》提出一种基于图像的工笔画生成算法。该方法首先将输入图像转化成灰度图像,然后通过Laplace算子提取出图像的轮廓线条;利用灰度分级方法生成第一层染墨稿,并用高斯平滑生成第二层染墨稿,将二者合并;将输入的彩色图像转到HSV色彩空间混合成色彩稿,最终通过将色彩稿和宣纸纹理融合得到最终的工笔画。该方法的关键在于提取轮廓线条,针对轮廓线条进行分层,分级处理,最终将效果进行合成。
[0008] 2、面向三维模型的素描画绘制
[0009] 2007年,《基于NPR的3维模型线绘算法》提出了一种基于网络模型的线素描算法。该算法首先通过离散化的曲率计算方法来确定模型上点的平均曲率;然后根据曲率阈值检测出网格模型的脊线和谷线;最后通过启发式搜索算法来提取该区域局部特征线条,二者结合可得到模型特征线,同时在绘制时设定虚拟光源,根据特征线上点的法线和光线的夹角判断特征点的受光情况,然后再进行绘制。该方法虽然加入虚拟光源,但是只对特征线进行受光分析,并没有对阴影区域做出界定。
[0010] 2014年,《A stylization method of Chinese ink painting for 3D tree》给出了基于三维树木模型的墨画生成方法。该方法首先将树木模型合理地划分为树干、树枝和树叶三部分,然后根据各部分的不同特征分别进行渲染和绘制。对于树干部分,采用二维纹理映射的渲染方式,直接将定义好的纹理图像映射到三维树干模型上生成水墨效果的树干;对于树枝部分,应用树干纹理颜色的均值直接对树枝进行颜色填充;对于树叶部分,通过模型简化、笔画面片构造、绘制方向确定、墨色确定、画笔模型构造及绘制晕染等步骤完成了树叶的水墨艺术格化。
[0011] 可以看出,面向三维模型的素描画大部分针对三维网格模型,基于点云模型的研究相对较少。现有网格模型素描线条画研究方法,并没有界定出阴影区域和对阴影区域进行线条画表达。同时,未考虑光照情况下的阴影区域的划分。另外,由于点云数据间缺乏拓扑关系,利用现有的算法并不能得到良好的特征线条。

发明内容

[0012] 本发明的目的是提供一种面向点云物体的三维素描画模拟方法,解决了现有技术中人工交互过多、未考虑光照的问题。
[0013] 本发明所采用的技术方案是,一种面向点云物体的三维素描画模拟方法,具体包括以下步骤:
[0014] 步骤1、利用移动最小二乘法计算点云模型每点的曲率信息,设定阈值提取点云物体中的脊点和谷点,并利用主成份分析法分别连接脊点与谷点,形成脊线谷线并进行优化,刻画三维点云模型的内部特征;
[0015] 步骤2、给定z轴正方向为视线方向,将点云模型点集投影到xoy平面上获取二维点集,提取其轮廓点,利用最短距离连接法将轮廓点进行连接形成轮廓线;
[0016] 步骤3、根据步骤1得到的脊线和谷线,利用改进后的光线追踪方法对脊线和谷线的可见性进行判断;
[0017] 步骤4、设定虚拟光源,给出一种阴影区域界定方法,划分阴影区域范围,同时在特定的阴影区域内,分析阴影线条的亮度分布情况,来处理阴影区域的线条亮度表达,最后结合线条模型和阴影区域表达,从而达到素描画的效果。
[0018] 本发明的特点还在于,
[0019] 步骤1具体按照以下步骤实施:
[0020] 步骤1.1,根据曲率大小提取脊点和谷点
[0021] 利用移动最小二乘法拟合曲面,计算每点的曲率,ki为点pi绝对值较大的主曲率,遍历点云模型中所有点绝对值较大的主曲率,得到最大曲率kmax和最小曲率kmin,设定一个阈值曲率参数0<α<1,满足公式(1)的点是谷点,满足公式(2)的点为脊点,
[0022] ki<0,ki<αkmin 0<α<1   (1)
[0023] ki>0,ki>αkmax 0<α<1   (2)
[0024] 其中,α设置为0.1~0.3;
[0025] 步骤1.2,分别连接脊点和谷点形成脊线和谷线
[0026] 任选一个脊点或者谷点p,利用k-d树,选取距离点p小于r的邻域点集,根据主成份分析法计算出主轴矢量,然后将邻域点投影到p点和主轴矢量确定的直线上,取投影最远的点进行连接,并将该点作为新的生长点继续生长,找到下一个生长点进行连接,重复执行,直到找不到下一生长点为止,生长点的连接形成脊线和谷线;
[0027] 步骤1.3,对步骤1.2得到的脊线和谷线进行优化。
[0028] 步骤1.2的具体算法步骤为:
[0029] 步骤1.2.1,根据初始生长点寻找邻域点集
[0030] 从脊点或者谷点的集合中,任取一点p,利用k-d树,选取距离点p小于r的邻域点集NBHD(p)={pj,||p-pj||<r,j=1,2...k},pj为距离点p小于r的点,r取值为0.1;
[0031] 步骤1.2.2,主轴矢量投影
[0032] 针对p点的邻域点集NBHD(p),点p的三阶协方差矩阵M为:
[0033]
[0034] 其中,为点p的k个邻近点的平均位置
[0035] 通过奇异值分解对点p的三阶协方差矩阵M进行特征值分解,得到协方差矩阵M的特征值λ3>λ2>λ1>0,选取协方差矩阵M的最大特征值λ3对应的特征向量作为主轴矢量,然后由p点和主轴矢量确定一条直线,将NBHD(p)内的每个点都投影该直线上,选取投影最远的两个端点作为下个生长点即新的生长点,同时从NBHD(p)中将该点删除;
[0036] 步骤1.2.3,从新的生长点开始,重复步骤1.2.2的操作,找寻下一生长点,当找寻不到新的生长点时,该条脊线或者谷线生长结束;
[0037] 步骤1.2.4,从脊点或谷点集合中,另取一点,重复步骤1.2.1~1.2.3的操作,直到脊点或谷点集合中无任何点,证明所有脊线谷线生长完毕。
[0038] 步骤1.3的具体算法步骤为:
[0039] 步骤1.3.1,从脊线或谷线集合中任取一条线段,假设该线段两个端点为e1和e2,线段e1e2的向量 p1和p2是另外一条脊线或谷线的两个端点,线段p1p2的向量利用公式(4)计算两向量的夹角,利用公式(5)计算两个端点的距离,若两
向量的夹角小于θ,两端点距离小于ωr,并且两者方向相反,即 则将e1e2和
p1p2相连,形成一条脊线或者谷线,
[0040]
[0041]
[0042] 其中,θ取值为10°,r为距离半径,取值为0.1,ω取值2~5;
[0043] 步骤1.3.2,若两线段夹角较大,并且两端点距离较大,则计算线段p1p2的中心点p12,若p12和e1距离较近,则将点p12和e1进行连接形成一条脊线或者谷线,否则连接若p12和e2;
[0044] 步骤1.3.3,分别遍历脊线谷线中每一个端点,重复步骤1.3.1、步骤1.3.2操作,直到所有的脊线谷线遍历完成为止。
[0045] 步骤2具体按照以下步骤实施:
[0046] 步骤2.1,将点云模型投影到二维平面,针对于三维点云模型,将z轴正方向作为视线方向,将点云模型平行投影到xoy平面上,从而得到二维点集;
[0047] 步骤2.2,针对二维点集,首先选取模型最左边的点,即x值最小的点,作为边界点起始点pm,以该点pm为坐标原点,建立局部坐标系,建立局部坐标系,利用k-d树,找到点pm的k个邻近点 记k邻近中第j个点为pmj,根据pmj的x坐标值xmj和y坐标值ymj,将pmj划分到pm点建立的局部坐标系的四个象限中,若xmj>xm同时ymj>ym,则pmj在第一象限;若xmj>xm同时ymjym,则pmj在第二象限;若xmj
[0048] 步骤2.3,若四个象限中,有一个象限中没有点,则pm点是边界点;若四个象限里都有点,利用公式(6)求取某一象限中任意两点pmi,pmj与pm点组成向量的夹角,选取所有相邻点夹角最大的角度,若最大角度大于阈值η时,则pm点为边界点,若最大角度小于阈值η时,则p点不是边界点,其中η=40°
[0049]
[0050] 步骤2.4,当视点发生改变时,转动点云模型,三维点云坐标发生旋转变化,当转动一个角度时,重新计算转动后的点云模型坐标,将旋转后得到的点云模型,重复执行步骤2.1~2.3处理,得到旋转后的轮廓点;
[0051] 步骤2.5,轮廓点的连接,从轮廓点集中任取一点c作为初始生长点,将点c进行标记,选取距离点c小于半径r的邻域点集NBHD(c),将NBHD(c)中的每个元素,按照和点c距离从小到大排序,从NBHD(c)中找到距离点c最小的点ci,连接cci,计算方向向量 并将点ci作为新的生长点,利用点ci的坐标、方向向量 构造直线l,然后选取距离点ci小于半径r的邻域点集NBHD(ci),依次从NBHD(ci)选取和l距离小于r的点作为下一个初始生长点,直到轮廓点集合中所有的点都被标记。
[0052] 步骤3具体按照以下步骤实施:
[0053] 步骤3.1,特征线可见性分析,根据步骤1得到的脊点谷点集合A,利用改进的光线跟踪算法对特征线的可见性进行判断,假设点集B为三维点云模型中的点,设定视线方向为z轴正方向,模型上z坐标极小值点为视点,对于脊点谷点集合A的每一个点p(x,y,z),利用k-d树,选取点p的k近邻点KNBHD(p)={p1,p2,p3,…,pk},计算k近邻点距离点p的平均距离构造圆柱体,以垂直于视线并且过p(x,y,z)的面为底面,底面圆半径为λDis,和p(x,y,z)的垂直距离为高,判断圆柱体和模型点集B的交点,如果存在除p(x,y,z)之外的交点pi(xi,yi,zi),且|zi-z|>r,则说明p(x,y,z)被点pi(xi,yi,zi)遮挡,对于未被遮挡的点,重复执行步骤1.2、步骤1.3,完成特征线的连接与优化,其中λ取值为1-10;
[0054] 步骤3.2,线条粗细的计算,对于可见的特征线,选取z坐标值最小的点作为初始视点,沿着z轴正方向的直线为视线,采用平行投影的方式,遍历三维模型中所有点的z坐标值确定最大z值zmax和最小z值zmin,然后依次在特征线集合中取出点p,其z坐标为zp,取出p在特征线中前一个节点pfront,设两点pfront,p组成一条线段pfrontp,取线段pfrontp中点为pmid,根据式(7)可得线段pfrontpmid的宽度值;同理,根据式(8)可得线段pmidp的宽度值,[0055]
[0056]
[0057] 其中, β设置为10,cofi为控制因子,cofi设置为1.0,根据深度的不同,线条粗细也随之变化,距离视点越近,线条越粗;距离视点越远,线条越细。
[0058] 步骤4具体按照以下步骤实施:
[0059] 步骤4.1,投影点确定,将z轴正方向作为视线方向,设置与xoy平面夹角45度并且平行于xoz平面的方向为光线方向,对于可见特征点集V中任一点pi(xi,yi,zi),利用k-d树,选取点p的k近邻点KNBHD(p)={p1,p2,p3,…,pk},计算k近邻点距离点p的平均距离三维点云模型点集中任一点pj(xj,yj,zj),构造矩形,宽为起始点坐标 结束点坐标 如果
并且 则pj是pi的投影点,其中 取值为1-5;
[0060] 步骤4.2,阴影线条的生成,假设特征线L由p1、p2、p3连起来的折线,p1、p2、p3的投影点分别为p'1、p'2、p'3,p1p'1的方向向量 将p1沿着方向向量 移动一段距离t,可以得到新的一点pc,即 同理,计算p2p'2的方向向量 将p2
沿着方向向量 移动一段距离t,得到新的一点pk,连接点pc、pk形成一条线段pcpk,此线段为一条特征线下的阴影线条,同理随着t取多个值时,可以得到多条同一个特征线下的阴影线条,给定t的取值是非线性增长的,由公式(9)计算得到,
[0061]
[0062] 步骤4.3,阴影区域线条灰度的确定,首先构造一个渐变灰度模型,其像素值包括白色,以及和不同程度的灰色,灰度呈现渐变颜色,将一条特征线的阴影区域,划分成n,根据该块离特征线的远近,对应已定义的颜色灰度值,从而形成阴影区的灰度变化,假设特征线L由线段p1p2和线段p2p3构成,对于p1p2,通过步骤4.2可以获得在特定光照下的多条阴影线条,p1p2和多条阴影线构成了多个封闭的四边形,将四边形根据预先构造的渐变灰度模型进行上色。
[0063] 本发明的有益效果是,本发明一种面向点云物体的三维素描画模拟方法,该方法界定出阴影区域和对阴影区域进行线条画表达,充分考虑了光照情况下的阴影区域的划分。附图说明
[0064] 图1是本发明一种面向点云物体的三维素描画模拟方法的两特征线端点切向相反示意图;
[0065] 图2是本发明一种面向点云物体的三维素描画模拟方法的两脊线或者脊线中间节点连接示意图;
[0066] 图3是本发明一种面向点云物体的三维素描画模拟方法提取的分段粗细变化示意图;
[0067] 图4是本发明一种面向点云物体的三维素描画模拟方法的阴影区域示意图[0068] 图5是本发明一种面向点云物体的三维素描画模拟方法的阴影线条示意图;
[0069] 图6是本发明一种面向点云物体的三维素描画模拟方法颜色渐变图示意图;
[0070] 图7是本发明一种面向点云物体的三维素描画模拟方法提取的建亮度区域划分示意图。

具体实施方式

[0071] 下面结合附图和具体实施方式对本发明进行详细说明。
[0072] 本发明一种面向点云物体的三维素描画模拟方法,具体包括以下步骤:
[0073] 步骤1、利用移动最小二乘法计算每点的曲率信息,设定阈值提取点云物体中的脊点和谷点,并利用主成份分析法分别连接脊点与谷点,形成脊线和谷线并进行优化形成特征线,刻画三维点云模型的内部特征;
[0074] 步骤1具体按照以下步骤实施:
[0075] 步骤1.1,根据曲率大小提取脊点和谷点
[0076] 利用移动最小二乘法拟合曲面,计算每点的曲率,ki为点pi绝对值较大的主曲率,遍历点云模型中所有点绝对值较大的主曲率,得到最大曲率kmax和最小曲率kmin,设定一个阈值曲率参数0<α<1,满足公式(1)的点是谷点,满足公式(2)的点为脊点,
[0077] ki<0,ki<αkmin 0<α<1   (1)
[0078] ki>0,ki>αkmax 0<α<1   (2)
[0079] 其中,α设置为0.1~0.3;
[0080] 步骤1.2,分别连接脊点和谷点形成脊线和谷线
[0081] 任选一个脊点或者谷点p,利用k-d树,选取距离点p小于r的邻域点集,根据主成份分析法计算出主轴矢量,然后将邻域点投影到p点和主轴矢量确定的直线上,取投影最远的点进行连接,并将该点作为新的生长点继续生长,找到下一个生长点进行连接,重复执行,直到找不到下一生长点为止,生长点的连接形成脊线和谷线;
[0082] 步骤1.2.1,根据初始生长点寻找邻域点集
[0083] 从脊点或者谷点的集合中,任取一点p,利用k-d树,选取距离点p小于r的邻域点集NBHD(p)={pj,||p-pj||<r,j=1,2...k},pj为距离点p小于r的点,r取值为0.1;
[0084] 步骤1.2.2,主轴矢量投影
[0085] 针对p点的邻域点集NBHD(p),点p的三阶协方差矩阵M为:
[0086]
[0087] 其中,为点p的k个邻近点的平均位置,
[0088] 通过奇异值分解对点p的三阶协方差矩阵M进行特征值分解,得到协方差矩阵M的特征值λ3>λ2>λ1>0,选取协方差矩阵M的最大特征值λ3对应的特征向量作为主轴矢量,然后由p点和主轴矢量确定一条直线,将NBHD(p)内的每个点都投影该直线上,选取投影最远的两个端点作为下个生长点即新的生长点,同时从NBHD(p)中将该点删除;
[0089] 步骤1.2.3,从新的生长点开始,重复步骤1.2.2的操作,找寻下一生长点,当找寻不到新的生长点时,该条脊线或者谷线生长结束;
[0090] 步骤1.2.4,从脊点或谷点集合中,另取一点,重复步骤1.2.1~1.2.3的操作,直到脊点或谷点集合中无任何点,证明所有特征线生长完毕。
[0091] 步骤1.3,对步骤1.2得到的脊线和谷线进行优化。
[0092] 步骤1.3.1,从脊线或谷线集合中任取一条线段,如图1所示,线段两个端点为e1和e2,线段e1e2的向量 p1和p2是另外一条脊线或谷线的两个端点,线段p1p2的向量 利用公式(4)计算两向量的夹角,利用公式(5)计算两个端点的距离,
若两向量的夹角小于θ,两端点距离小于ωr,并且两者方向相反,即 则将
e1e2和p1p2相连,形成一条脊线或者谷线,
[0093]
[0094]
[0095] 其中,θ取值为10°,r为距离半径,取值为0.1,ω取值2~5。
[0096] 步骤1.3.2,若两线段夹角较大,并且两端点距离较大,若两线段夹角较大,并且两端点距离较大,如图2所示,则计算线段p1p2的中心点p12,若p12和e1距离较近,则将点p12和e1进行连接形成一条脊线或者谷线,否则连接p12和e2;
[0097] 步骤1.3.3,分别遍历脊线谷线中每一个端点,重复步骤1.3.1、步骤1.3.2操作,直到所有的脊线谷线遍历完成为止。
[0098] 步骤2、给定z轴正方向为视线方向,将模型点集投影到xoy平面上获取二维点集,提取其轮廓点,利用最短距离连接法将轮廓点进行连接;
[0099] 步骤2.1,将点云模型投影到二维平面,针对于三维点云模型,将z轴正方向作为视线方向,将点云模型平行投影到xoy平面上,从而得到二维点集;
[0100] 步骤2.2,针对二维点集,首先选取模型最左边的点,即x值最小的点,作为边界点起始点pm,以该点pm为坐标原点,建立局部坐标系,建立局部坐标系,利用k-d树,找到点pm的k个邻近点 记k邻近中第j个点为pmj,根据pmj的x坐标值xmj和y坐标值ymj,将pmj划分到pm点建立的局部坐标系的四个象限中,若xmj>xm同时ymj>ym,则pmj在第一象限;若xmj>xm同时ymjym,则pmj在第二象限;若xmj
[0101] 步骤2.3,若四个象限中,有一个象限中没有点,则pm点是边界点;若四个象限里都有点,利用公式(6)求取某一象限中任意两点pmi,pmj与pm点组成向量的夹角,选取所有相邻点夹角最大的角度,若最大角度大于阈值η时,则pm点为边界点,若最大角度小于阈值η时,则p点不是边界点,其中η=40°
[0102]
[0103] 步骤2.4,当视点发生改变时,转动点云模型,三维点云坐标发生旋转变化,当转动一个角度时,重新计算转动后的点云模型坐标,将旋转后得到的点云模型,重复执行步骤2.1~2.3处理,得到旋转后的轮廓点;
[0104] 步骤2.5,轮廓点的连接,从轮廓点集中任取一点c作为初始生长点,将点c进行标记,选取距离点c小于半径r的邻域点集NBHD(c),将NBHD(c)中的每个元素,按照和点c距离从小到大排序,从NBHD(c)中找到距离点c最小的点ci,连接cci,计算方向向量 并将点ci作为新的生长点,利用点ci的坐标、方向向量 构造直线l,然后选取距离点ci小于半径r的邻域点集NBHD(ci),依次从NBHD(ci)选取和l距离小于r的点作为下一个初始生长点,直到轮廓点集合中所有的点都被标记。
[0105] 步骤3、根据步骤1得到的脊线和谷线,利用改进后的光线追踪方法对特征线的可见性进行判断,并针对可见的特征线,提出一种基于点与相邻两点向量夹角的线条风格化方法;
[0106] 步骤3.1,特征线可见性分析,根据步骤1得到的脊点谷点集合A,利用改进的光线跟踪算法对特征线的可见性进行判断,假设点集B为三维点云模型中的点,设定视线方向为z轴正方向,模型上z坐标极小值点为视点,对于脊点谷点集A的每一个点p(x,y,z),利用k-d树,选取点p的k近邻点KNBHD(p)={p1,p2,p3,…,pk},计算k近邻点距离点p的平均距离构造圆柱体,以垂直于视线并且过p(x,y,z)的面为底面,底面圆半径为λDis,和p(x,y,z)的垂直距离为高,判断圆柱体和模型点集B的交点,如果存在除p(x,y,z)之外的交点pi(xi,yi,zi),且|zi-z|>r,则说明p(x,y,z)被点pi(xi,yi,zi)遮挡,对于未被遮挡的点,重复执行步骤1.2、步骤1.3,完成特征线的连接与优化,其中λ取值为1-10;
[0107] 步骤3.2,线条粗细的计算,对于可见的特征线,选取z坐标值最小的点作为初始视点,沿着z轴正方向的直线为视线,采用平行投影的方式,遍历三维模型中所有点的z坐标值确定最大z值zmax和最小z值zmin,然后依次在特征线集合中取出点p,其z坐标为zp,如图3所示,p在特征线中前一个节点pfront,两点pfront,p组成一条线段pfrontp,取线段pfrontp中点为pmid,根据式(7)可得线段pfrontpmid的宽度值;同理,根据式(8)可得线段pmidp的宽度值,[0108]
[0109]
[0110] 其中, β设置为10,cofi为控制因子,cofi设置为1.0,根据深度的不同,线条粗细也随之变化,距离视点越近,线条越粗;距离视点越远,线条越细。
[0111] 步骤4、设定虚拟光源,给出一种阴影区域界定方法,划分阴影区域范围,同时在特定的阴影区域内,分析阴影线条的亮度分布情况,给出一种阴影区域线条密度方法和阴影区域线条灰度方法,来处理阴影区域的线条亮度表达,最后结合线条模型和阴影区域表达,从而达到素描画的效果,
[0112] 步骤4.1,投影点确定
[0113] 如图4所示,将z轴正方向作为视线方向,给定一个光照方向,设置与xoy平面夹角45度并且平行于xoz平面的方向为光线方向,对于可见特征点集V中任一点pi(xi,yi,zi),利用k-d树,选取点p的k近邻点KNBHD(p)={p1,p2,p3,…,pk},计算k近邻点距离点p的平均距离 在yoz面上构造一个矩形,该矩形的长为B的z坐标值,宽
为 然后通过A与B之间x坐标差值和B的z坐标值,利用角度计算光线穿过A点到达B点周围时的投影点的高度,若投影高度大于B点的高度,则说明光线在B点上方经过,B点是A点阴影区域内一点;若投影高度小于B点高度,则说明B点不是阴影区域;若投影高度等于B点高度,则说明B点是A点的投影点。即,如果 B点是A点的投影点。则将投影点连接起来构成投影线,将投影线和脊线端点连接构成投影区域。
[0114] 步骤4.2,阴影线条的生成
[0115] 如图5所示,假设特征线L是由p1、p2、p3连起来的折线,p1、p2、p3的投影点分别为的方向向量 将p1沿着方向向量 移动一段距离t,可以得到新的一点pc,即 同理,计算p2p'2的方向向量 将p2沿着
方向向量 移动一段距离t,得到新的一点pk,连接点pc、pk形成一条线段pcpk,此线段为一条特征线下的阴影线条。同理随着t取多个值时,可以得到多条同一个特征线下的阴影线条,给定t的取值是非线性增长的,由公式(9)计算得到,
[0116]
[0117] 步骤4.3,阴影区域线条灰度的确定。如图6所示,构造一个渐变灰度模型,其像素值包括白色,以及和不同程度的灰色,灰度呈现渐变颜色。将一条特征线的阴影区域,划分成n块,根据该块离特征线的远近,对应已定义的颜色灰度值。从而形成阴影区的灰度变化。如图7所示,特征线L由线段p1p2和线段p2p3构成,对于p1p2,通过步骤4.2可以获得在特定光照下的多条阴影线条l1,l2和l3。l1和p1p2构成了一个封闭的四边形,将该四边形标记为区域
1,同理l1和l2构成了一个封闭四边形,标记为区域2,l2和l3构成了一个封闭的四边形,标记为区域3。区域1比区域2暗,区域2比区域3暗。将四边形根据预先构造的渐变灰度模型进行上色,即可得到阴影效果。
[0118] 本发明一种面向点云物体的三维素描画模拟方法,通过设置阈值提取点云物体中的谷脊点,利用主成份分析法分别连接谷点与脊点,形成脊线和谷线并进行优化。接着提取轮廓点并利用最短距离连接法将轮廓点进行连接,利用改进后的光线追踪方法对脊线和谷线的可见性进行判断。对于可见的脊线和谷线,结合线条模型和阴影区域表达,从而达到素描画的效果。本专利基于点云数据能够自动完成素描效果,解决了现有技术中人工交互过多、未考虑光照的问题。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈