本发明涉及3d点云处理领域,特别涉及一种3d点云数据裁剪方法。
背景技术:
1、随着3d扫描和点云处理技术的发展,对点云数据进行裁剪成为3d建模、分析和可视化中的常见需求,因此对于3d点云的裁剪传统的方法为采用将其投影为二维图像,从而将无序的空间点转变为规则的数据排列,然后再二维图像上进行裁剪,如专利申请号为201910915696.3的一种同步实现人脸三维点云特征点定位和人脸分割的方法,其就利用到了三维人脸点云投影到二维空间获取特征点然后再转换成三维点云,进而进行裁剪,这种方式需要三维到二维的转换,相对较为复杂,且无法做到用户的可视化操作,无法做到直观准确的裁剪操作。
技术实现思路
1、本发明的目的在于克服现有技术的不足,提供一种3d点云裁剪方法,该方法基于qt框架和pcl库的3d点云裁剪系统,通过四视图的方式提供直观、准确的裁剪操作,以提高点云处理效率和精度。
2、为了实现上述目的,本发明采用的技术方案为:
3、一种3d点云裁剪方法,包括如下步骤:
4、s1、导入原始3d文件预先搭建的用户界面中进行显示;
5、s2、计算出点云中心,将点云数据居中显示在用户界面中;
6、s3、依次通过不同角度在用户界面中展示点云数据,然后获取用户的裁剪触发信号,在不同角度下基于点云裁剪触发信号对点云数据进行裁剪,并最终生成裁剪后的3d点云数据。
7、在步骤s3中,将3d点云图像依顺序分别从不同的角度进行显示并接收用户的裁剪信号以及执行裁剪信号,得到从不同角度显示的点云图像的裁剪后的图像作为最终的点云。
8、步骤s3还包括:
9、将点云数据分别按照俯视图、侧视图、前视图三个角度进行居中展示并按照先后顺序采集用于的裁剪触发信号进行3d点云数据的裁剪最终生成裁剪后的最终点云数据。
10、步骤s3包括:
11、s31、将3d点云数据按照俯视图进行居中显示并裁剪;
12、s32、将步骤s31裁剪后的3d点云数据按照侧视图进行居中显示并裁剪;
13、s33、将步骤s32裁剪后的3d点云数据按照前视图进行居中显示并裁剪;
14、s34、将步骤s33裁剪后的3d点云数据在用户界面进行展示,在获取用户的结束信号后结束裁剪并输出步骤s33裁剪后的3d点云作为最终点云,否则根据用户的选择反馈至步骤s31-s33任一步骤继续执行裁剪。
15、步骤s31包括:在居中显示后,获取用户鼠标操作指令,当得到开始裁剪指令后,获取用户通过鼠标选择的点云数据中的点,记录用户通过鼠标选择的每一个点并将各个点进行连接形成一个多边形;在获取用户的裁剪结束指令后,根据多边形中各点的坐标使用凸包算法来裁剪原始3d图像,形成新的3d图像数据。
16、所述步骤s32包括将步骤s31裁剪形成后新的3d点云图像数据以侧视图的方式进行展示,然后获取用户鼠标操作指令,当得到开始裁剪指令后,获取用户通过鼠标选择的点云数据中的点,记录用户通过鼠标选择的每一个点并将各个点进行连接形成一个多边形;在获取用户的裁剪结束指令后,根据多边形中各点的坐标使用凸包算法来裁剪原始3d图像,形成新的3d图像数据,从而完成侧视角度的裁剪。
17、所述步骤s33包括将s32裁剪形成后新的3d点云图像数据以前视图的方式进行展示,然后获取用户鼠标操作指令,当得到开始裁剪指令后,获取用户通过鼠标选择的点云数据中的点,记录用户通过鼠标选择的每一个点并将各个点进行连接形成一个多边形;在获取用户的裁剪结束指令后,根据多边形中各点的坐标使用凸包算法来裁剪原始3d图像,形成新的3d图像数据,从而完成前视角度的裁剪,最后将前视角度裁剪后的3d点云最为最终裁剪后的点云数据。
18、所述凸包算法裁剪3d点云图像包括:根据采集的用户选择点在三维空间中的坐标计算出多边形的凸包数据结构,使用计算出的凸包数据结构,裁剪3d点云数据,将裁剪出的3d数据形成新的点云数据。
19、采用qt框架开发用户界面模块及对应的用户操作功能按钮,基于用户操作用户界面及对应的功能按钮来控制裁剪。
20、一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述程序被处理器执行时实现所述的3d点云裁剪方法。
21、本发明的优点在于:通过四视图的方式提供直观、准确的裁剪操作,以提高点云处理效率和精度。通过多角度的可视化的裁剪,方便用户根据需要进行裁剪,且多角度分别裁剪,提高了裁剪的准确性,同时裁剪的点云可以实时查看。
22、裁剪方法技术特点与优点,操作方便,该裁剪方式能够大大减少用户的操作次数,通常只需要从俯视方向,侧视方向,前视方向分别裁剪一次即可从点云数据中裁剪出目标物体,同时对空间立体感较弱的使用者来说,将3d空间图像转为2d图像之后裁剪可有有效减少使用者的不适感。
1.一种3d点云裁剪方法,其特征在于:包括如下步骤:
2.如权利要求1所述的一种3d点云裁剪方法,其特征在于:在步骤s3中,将3d点云图像依顺序分别从不同的角度进行显示并接收用户的裁剪信号以及执行裁剪信号,得到从不同角度显示的点云图像的裁剪后的图像作为最终的点云。
3.如权利要求1或2所述的一种3d点云裁剪方法,其特征在于:
4.如权利要求3所述的一种3d点云裁剪方法,其特征在于:步骤s3包括:
5.如权利要求4所述的一种3d点云裁剪方法,其特征在于:步骤s31包括:在居中显示后,获取用户鼠标操作指令,当得到开始裁剪指令后,获取用户通过鼠标选择的点云数据中的点,记录用户通过鼠标选择的每一个点并将各个点进行连接形成一个多边形;在获取用户的裁剪结束指令后,根据多边形中各点的坐标使用凸包算法来裁剪原始3d图像,形成新的3d图像数据。
6.如权利要求5所述的一种3d点云裁剪方法,其特征在于:所述步骤s32包括将步骤s31裁剪形成后新的3d点云图像数据以侧视图的方式进行展示,然后获取用户鼠标操作指令,当得到开始裁剪指令后,获取用户通过鼠标选择的点云数据中的点,记录用户通过鼠标选择的每一个点并将各个点进行连接形成一个多边形;在获取用户的裁剪结束指令后,根据多边形中各点的坐标使用凸包算法来裁剪原始3d图像,形成新的3d图像数据,从而完成侧视角度的裁剪。
7.如权利要求6所述的一种3d点云裁剪方法,其特征在于:
8.如权利要求5-7所述的所述的一种3d点云裁剪方法,其特征在于:所述凸包算法裁剪3d点云图像包括:根据采集的用户选择点在三维空间中的坐标计算出多边形的凸包数据结构,使用计算出的凸包数据结构,裁剪3d点云数据,将裁剪出的3d数据形成新的点云数据。
9.如权利要求1-8所述的一种3d点云裁剪方法,其特征在于:采用qt框架开发用户界面模块及对应的用户操作功能按钮,基于用户操作用户界面及对应的功能按钮来控制裁剪。
10.一种计算机可读存储介质,其特征在于:所述存储介质中存储有计算机程序,所述程序被处理器执行时实现如权利要求1-9任一所述的3d点云裁剪方法。
