点云数据场剖面云图绘制算法
- 格式:pdf
- 大小:414.44 KB
- 文档页数:6
第2O卷第4期 2011年12月 计算机辅助工程
Computer Aided Engineering V01.20 No.4
Dec.2Ol1
文章编号:1006—0871(201 1)04 0019—06
点云数据场剖面云图绘制算法 徐龙 , 武殿梁 , 程奂羽中 , (1.上海交通大学机械与动力工程学院,上海200240; 2.上海市网络化制造与企业信息化重点实验室,上海200030)
摘要:为考察点云数据场中关键区域物理量数据分布,提出一种点云数据场剖面云图绘制算法.将 点云数据向剖面上投影,通过对获得的二维平面点集进行边界识别建立边环嵌套关系;通过确定物 理量与颜色的映射关系对剖面各区域进行颜色填充,可获得点云数据场任意位置的剖面云图.应用 结果表明该算法的鲁棒性和适用性较好,可用于考察点云数据场关键区域的物理量分布. 关键词:点云数据场;云图;K邻域;边界 中图分类号:TP391.72 文献标志码:A
Rendering algorithm on section contour of point cloud’。 fieldpoint aata
XU Long ,WU Dianliang ,CHENG Huanchong , (1.School of Mechanical Engineering,Shanghai Jiaotong University,Shanghai 200240,China; 2.Shanghai Key Laboratory of Advanced Manufacturing Environment,Shanghai 200030,China)
Abstract:To investigate the physical quantity data distribution of critical regions in point cloud data field,a rendering algorithm on section nephogram is proposed for point cloud data field.Point cloud data is projected to the section,then nested relations between boundary edges are constructed by boundary identification of 2D plane point set;all the region of the section is filled with color according to the mapping between physical quantity and the color,and the section nephogram quantity in arbitrary position of point cloud data field can be obtained.The application results show that the algorithm has good robustness and adaptability,and can be used to study the physical quantity data distribution of critical regions in point cloud data field. Key words:point cloud data field;contour;K—neighborhood;boundary
0 引 言 云图用颜色连续变化的图像表示某个物理现象 或科学计算结果的变化趋势,将复杂数值: 问的变 化信息转换为图像颜色之间的变化关系,可使人直 观地了解数据的变化趋势.由于具有直观、形象的特 点以及能比数据提供更多信息的优点,云图成为科 学计算可视化_l 中常见的方法之一.目前,云图绘 制方法 主要包括单元网格填充法、等值线填充法 和扫描线算法等,但这些算法只处理含有有限元网 格信息的数据场,对于用点云数据描述的数据场,如 何得到任意位置的剖面云图,目前尚无成熟的理论.
收稿日期:2010.11 ll修回日期:2011—01—07 基金项目:上海市信息化发展专项资金 作者简介:徐龙(1984一),男,安徽阜阳人,硕士研究生,研究方向为科学计算可视化,(E-mail)xulongroman@sjtu.edu.CB 20 计算机辅助工程 2011年 本文提出一种点云数据场剖面云图绘制算法,通过 将点云数据在剖面上投影,对获得的二维投影点集 进行边界识别 ,建立边环嵌套关系,确定物理量 与颜色之间的映射关系,对剖面各区域进行颜色填 充,获得点云数据场任意位置的剖面云图.
1 算法实现步骤 1.1点云网格划分和剖面投影 假设点云在空问中均匀分布,为加快处理速度, 需对点云进行网格划分.描述点云空间分布特征的 是点云密度
点集合 P={P = ,P,= 1 P∈P, ∈ } 相交网格中的点向平面上投影见图2,其中,黑点表 示原始投影点,圆圈表示平面上的点.
图2相交网格中的点向平面上的投影 Fig.2 Intersected grids pmjcoting to plane of points
p= N (1) 1.2 二维点集边界自动识别
式中: 为点云根路径包围盒体积;Ⅳ为点云数目. 设每个栅格中至多有n个点,由点云密度可获 得栅格的边长
(2) 为提高处理速度,应使分割出来的栅格形状接近于 立方体.点云根路径包围盒划分栅格过程采用半长 边二叉树分割方法,即每次都沿包围盒边长最大的 方向将包围盒分成2个子包围盒;若得到的子包围 盒的3条边长都小于Z,则停止分割.将点云中的离 散点根据坐标值压人不同的空间栅格.在点云关键 区域设置剖面.厂,搜索点云中与 剖面距离在d之内且投影在剖 面上的离散点.可利用网格加 速搜索,将剖面.厂沿其法线方 向移动d(d>0)得到. ,移动 一d得到. ,然后分别检测与 l厂 和 相交的网格 ,得到 的相交网格集合见图】.设相
图1
交网格包含的离散点集合为Fig.I
,对于 ∈力,若满足式(3)和
(4),则 为平面l厂投影点. ×A+ ×B+ X C—D
、
与剖面及其平 行面相交的网 格示意 Grid intersected th section and parallel face
<d (3)
v'=v ̄Mol, I v:l< ㈩
By+ +D=0;Mr),为由全局坐标系M0到厂平面局 部坐标系 的变换矩阵。
南投影点集 可得投影到 平面上的二维离散
用边界自动识别算法可找出.厂平面上的二维点 集P的内边界集和外边界集.该算法可分为K邻域 点搜索、边界特征点辨识和内外边界识别.K邻域点 搜索建立点集P中每个点与其周周点之间的联系; 边界特征点辨识在K邻域建立的基础上找出可能 的边界点;内外边界识别将找出的边界特征点连接 成边界线,同时排除不在边界线上的特征点. 1.2.1 K邻域点搜索 K邻域点搜索是点集预处理中的常用方法之 一,
利用空间分块策略 进行 个最近点搜索.假
定点集P均匀分布,依据厂的面积S=n×b和点集
总数,v可计算出正方形网格的边长f ,将平面分成 许多大小相同的网格,每个采样点占据一个网格.在 首次划分时,网格边长
(5) 在首次划分的基础上修正网格边长
=i0√ (6)
式中:Ⅳ 为非空网格数目;N 为所有网格数目. 再次对平面进行网格划分,随后遍历点集P,将 P中的每个点都归入相应的网格中.在搜索每个离 散点P(P∈P)的 邻域点前,还需设定搜索范围t ( 与P的密度有关).若P在 邻域点中部分点与P 的距离大于t,则可认为这些点与P的关系不够紧 密,可将这些点从P的K邻域点中剔除. 基于上述思想的 邻域点搜索算法步骤如下: 步骤1根据式(5)和(6),对 划分网格,将所 有栅格存放在二维数组Array中,对于栅格 Array[i][J],其邻近栅格在Array中的下标(i √ )为 i =i±1;. =
.
1 (7)
= f 第4期 徐龙,等:点云数据场剖面云图绘制算法 2l 步骤2找到P所在平面网格,对该网格进行 逐步扩展,直到扩展m倍边长Z后,得到的子空间 S(m)中包含的离散点数目第一次大于等于 步骤3在空间5(m)中寻找P的K邻域点,首 先排除空间S(m)中与P距离超过t的点,剩余的点 组成点集 (n),n代表点集容量.若/2≤K,则 (/2) 为P的K邻域点集合; 否则,设d 和d 分别 为P到空间5(m一1) 的 方向2条边和Y方 向2条边中距离最小 值(见图3,图中黑点为 K邻域中的点), d:rain(d ,d ), (n) 中与P距离小于d的 /2 个点(0≤凡 ≤n)必
。 。 一十 ・
● ● ・) / ●
0 ‘\ ● C —— ● ● ● 0
图3 点P的K邻域点搜索 Fig.3 K—neighborhood search of pointP
然在P的K邻域中,随后将 (n)中剩余点按照与P 的距离进行排序,取距离最小的 —n 个点作为P的 K邻域中剩下的点. 步骤4返回步骤2,直到点集中所有离散点都 处理完毕. 1.2.2边界特征点辨识 K邻域的建立为边界特征点 的检测提供基 础.如果点集JP中某点是边界特征点,其 邻域点 的分布将偏向某侧;如果是内部点,其 邻域点将 均匀地分布在该点的周围(见图4(a)和4l=b))
P . P.P : .‘ r
I
、 . f
●
(a)p点为边界特征点 (b)p点为内部点
o o o
PP?,以PP?为基准,分别计算由点P到其余 邻域点 P:(0<i<k)的有向线段 :按照逆时针方向旋转到 pp?所经过的角度 ,从而得到一个角度序列S= ( l,O/2,…, 一1). 步骤2对角度序列s进行升序排列并加上2 个极值角度,得到新的角度序列 =(0, , :,…, & ,2盯). 步骤3计算 的角度序列差 Z = +l— ,i=0,1,…,k一1 步骤4求出角度序列差中的最大值Z….假设 z…为向量PP:和 之间的夹角,以PP 为 轴正方 向建立直角坐标系(见图4(c)),若P在点集内部, 则K邻域点分布在4个象限中;若P是边界特征点, 则至少有1个象限没有 邻域点的分布.因此,可 由Z 的大小判断边界特征点,即如果Z 超过某阈 值,则判定K邻域点分布不均匀,P为边界特征点; 否则P为内部点.将z 的阈值取为叮r/2就能满足