使用说明书
第一章 系统概述
基于激光点云操作可视化界面是进行点云文件综合处理的GUI界面,包括计算点云文件中心点、点云文件体素化、点云文件的三维重建和点云文件网格化等模块。主要功能是快速的对点云文件进行读入,展示和处理,通过GUI界面对点云文件进行数据的提取和展示。该GUI界面可以对点云文件的加工和处理的各个环节进行快速计算、统一展示和有效保存,为之后对3D点云文件底层快速处理提供了良好的处理界面。
第二章 功能分析
*第一节 文件读入*
*第二节 show功能分析*
图1-2 Center Point功能实现
点击Create Point,中心点会出现在点云图中,其坐标会自动出现在Operational information窗口中。
图1-3 Normal Estimatio功能实现
点击Normal Estimation,窗口中显示各点的法向量。
3.均匀下采样的实现。
点击Voxel down sampling功能,对点云进行下采样以降低点云密度,在减少点的数量的前提下仍可以用剩余的点显示其特征,并以可视化的方式进行结果的查看。
4.更换点云图颜色。
通过点击Paint point distance,实现颜色的随机更改。
源点云中的每个点计算到目标点云中最近点的距离。
点击Bounding volumes,裁剪几何体并获得边界体积。Pick Point窗口显示出事物的边界。
7.凸包的实现。
点云的凸包是包含所有点的最小凸集。在二维欧几里得空间中,凸包可想象为一条刚好包着所有点的橡皮圈。用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点。点击Convex hull可以实现此功能。
DBSCAN群集是一种基于密度的聚类算法。该算法中需要两个参数:定义与聚类中相邻要素的距离,并定义形成聚类所需的最小点数。点击DBSCAN clustering实现此功能。
点击Plane segmentation可以找到点云中支撑力最大的平面。Pick Points窗口可显示结果,Operational information窗口可以显示此方程。
10.隐藏点去除的功能实现。
若背景中的点没有被其他点遮挡所以泄漏到前景中,此时我们可以应用隐藏点去除算法。点击Hidden Point removal可以实现此功能,只显示前景的点集。
通过点击Intrinsicshape signatures或Intrinsic shape signatures2,可以计算出关键点及特征点提取。
*第三节 Mesh功能分析*
1.可视化3D网格(Visualize a 3D mesh)
点击mesh菜单,在mesh菜单目录下选择Visualize a 3D mesh菜单项,在下面显示框中原3D点云的基础上显示网格图像。
\2. 表面法向估计(Surface normal estimation)
点击mesh菜单,在mesh菜单目录下选择Surface normal estimation菜单项。
在下面显示框中显示使用曲面法线计算绘制的网格图像。
点击mesh菜单,在mesh菜单目录下选择Crop mesh菜单项。
在下面显示框中显示出网格裁剪过后的图像。
点击mesh菜单,在mesh菜单目录下选择Paint mesh菜单项。
在下面显示框中显示给网格随机上色的图像。
点击mesh菜单,在mesh菜单目录下选择Mesh properties菜单项。
在代码输出栏中显示网格图像的属性。
6.网格过滤
点击mesh菜单,在mesh菜单目录下选择Mesh filtering菜单项。
在下面显示框中显示使用平均过滤器对网格进行降噪后的网格图像。
在右方输出栏中显示滤波迭代次数。
点击mesh菜单,在mesh菜单目录下选择Laplacian菜单项。
在下面显示框中显示使用拉普拉斯过滤器对网格进行降噪后的网格图像。
在右方输出栏中显示滤波迭代次数。
点击mesh菜单,在mesh菜单目录下选择Taubin filter菜单项。
在下面显示框中显示使用陶氏过滤器对网格进行降噪后的网格图像。
在右方输出栏中显示滤波迭代次数。
点击mesh菜单,在mesh菜单目录下选择Sampling菜单项
在下面显示框中显示被采样的点(灰色点)。
在右方输出栏中显示抽样点个数。
点击mesh菜单,在mesh菜单目录下选择Mesh_subdivision菜单项
在下面显示框中细分后的网格图像。
在右方输出栏中显示顶点个数和三角形个数。
9.网格简化
点击mesh菜单,在mesh菜单目录下选择Vertex clustering菜单项
在下面显示框中显示使用顶点聚类方法简化后的网格图像。
点击mesh菜单,在mesh菜单目录下选择Mesh decimation菜单项
在下面显示框中使用网格抽取简化后的网格图像。
点击mesh菜单,在mesh菜单目录下选择Connected components菜单项
在下面显示框中显示使用连接组件降噪后的网格图像。
*第四节 Tree功能分析*
1.KDTree
点击菜单Tree,在菜单目录中选择KDTree菜单项,使用search_radius_vector_3d方法查询搭配锚点的距离小于给定半径的所有点,用绿色将这些点涂成绿色,展示效果如图
2.八叉树(OCTree)
点击菜单Tree,在菜单目录中选择OCTree菜单项,
使用convert_from_point_cloud和max_depth方法构建八叉树,相应的叶节点采用最后插入点的颜色,展示效果如图:
3.遍历(Traversal)
点击菜单Tree,在菜单目录中选择Traversal菜单项,
使用traverse方法用于遍历八叉树,对于搜索或处理3D几何体的子部分非常有用,展示效果如图:
4.查找包含叶节点(Find leaf node containing point)
点击菜单Tree,在菜单目录中选择Find leaf node containing point菜单项,
使用locate_leaf_node方法快速搜索出八叉树中包含给定点的叶节点,输出结果如图所示
5.圆柱形邻域搜索(Circle find)
点击菜单Tree,在菜单目录中选择Circle find菜单项,
通过使用numpy生成点云,KDtree搜索,半径搜索,将给定查询点并渲染为红色,半径搜索结果渲染为红色,效果展示如图
6.密度(desity)
点击菜单Tree,在菜单目录中选择desity菜单项,
采用基于距离的平均距离密度表示法计算点云各点的距离平均值来估算点云分布 疏密程度,p是一点,N是点数,dis(p,q)表示点p与其他任意点q之间的距离, dp表示点p与其他点的最小距离,(此方法采用树结构)
7.密度2(desity2)
点击菜单Tree,在菜单目录中选择desity2菜单项,
采用基于距离的平均距离密度表示法计算点云各点的距离平均值来估算点云分布疏密程度,p是一点,N是点数,dis(p,q)表示点p与其他任意点q之间的距离,dp表示点p与其他点的最小距离,(此方法未采用树结构)
8.去除重叠(Remove overlap)
点击菜单Tree,在菜单目录中选择Remove overlap菜单项,
若某一点在某一距离阈值邻域内不止其本身一个点,则认为其有重复点,去除重复点的展示结果如图
9.邻距离(Neighbor distance)
点击菜单Tree,在菜单目录中选择Neighbor distance菜单项,
使用compute_nearest_neighbor_distance函数实现计算每个点到其最近邻点欧式距离,根据欧拉距离进行颜色渲染,展示结果如图
10.马氏距离(Mahalanobis distance)
点击菜单Tree,在菜单目录中选择Mahalanobis distance菜单项,使用compute_计算每个点到最近邻点的马氏距离,根据马氏距离进行颜色渲染会展示.
*第五节 体素化(Voxelization)*
体素化(Voxelization)是将物体的几何形式表示转换成最接近该物体的体素表示形式,产生体数据,包含模型的表面信息和内部属性。表示3D模型的体素跟表示2D图像的像素相似,只不过从二维的点扩展到三维的立方体单元。体素化能够对模型进行简化,得到均匀一致的网格,在求模型的切片,物理仿真分析过程中有较好的应用。
1.从三角形网格(From triangle mesh)
从三角形网格创建体素网格的方法返回一个体素网格。
点击From triangle mesh,返回一个体素网格。
2.从点云(From point cloud)
体素网格也可以使用方法从点云创建。如果点云的至少一个点位于体素内,则占用体素。体素的颜色是体素内所有点的平均值。
3.体素表面化(voxel surface)
4.体素雕刻(voxel carving)
点击voxel surface,使用深度图来雕刻密集的体素网格。
5.立体像素网格(voxel grid)
*第六节 三维重建*
1.通过菜单选项Reconstruction,对读取的点云文件进行三维重建。
2.选择Alpha shapes选项进行a-shape的曲面重构。
右边显示是Alpha shapes的参数控制形状,值越大越接近一个凸包。
3.选择Ball pivoting和Ball pivoting2选项进行球旋转算法的两个方面进行运算。
右边显示是Ball pivoting的参数用于创建球表面的半径。
4选择poisson surface reconstruction和poisson surface reconstruction2选项进行poisson曲面重构。
5.选择Normal estimation选项进行点云法线的拟合导出。
6.选择Surface curvature选项通过对表面曲率的计算获知点云图像的起伏程度。
*第七节 Transformation功能分析*
图中可看出模型在x轴方向向右平移一次,Operational information窗口显示平移后中心点位置。
2.实现在y轴上的移动。
图中可看出模型在y轴方向向右平移一次,Operational information窗口显示平移后中心点位置。
图中可看出模型在y轴方向向右平移一次,Operational information窗口显示平移后中心点位置。
点击Rotation功能,可以看到模型底部的模样。
通过点击Scale,可以实现点对点的缩放。
通过点击General Transformation功能,可以实现由齐次变换矩阵定义的常规变换。
点击X through,可以看出沿x轴切割后模型的改变。
点击X through,可以看出沿x轴切割后模型的改变。
点击X through,可以看出沿x轴切割后模型的改变。
*第八节 点云分割拟合(split)*
点云分割是根据空间、几何和纹理等特征对点云进行划分,使得同一划分区域内的点云拥有相似的特征 。点击split弹出总模块功能如下图所示。
1.随机抽样一致性算法(Ransac)
随机抽样一致性算法RANSAC(Random sample consensus)是一种迭代的方法来从一系列包含有离异值的数据中计算数学模型参数的方法。点击Ransac得到点云拟合平面方程。
2.Ransac拟合分割多个平面(Mul ransac)
点击Mul ransac 通过Ransac算法进行拟合分割为多个平面。
3.Ransac拟合分割多个平面二(Mul tansac2)
点击Mul tansac2,使用第二种算法拟合分割成多个平面。
4.Ransac拟合空间直线(Ransac line)
点击Ransac line使用Ransac拟合空间直线算法分割点集。
5.Kmeans点云聚类(Kmeans)
6.点云欧式聚类(Euclidean_cluster)
点击Euclidean_cluster通过点云欧式聚类算法得到聚类值为0,所以图像为空。
7.点云快速欧式聚类(Quick_euclidean_cluster)
点击Quick_euclidean_cluster,通过点云快速欧式聚类算法得到聚类为0,故而图像展示为空。
8.区域生长分割(region growing)
点击region growing,通过区域生长分割得到全新的点云。
9.最小二乘拟合平面(Pca)
PCA是一种数学变换的方法,利用降维的思想在变换中保持变量的总方差不变,将给定的一组变量线性变换为另一组不相关的变量,并且使变换后的第一变量的方差最大,即第一主成分,其他分量的方差依次递减。点击Pca,得到拟合平面方程。
10.svd分解法(Svd)