基于halcon的3D点云重建和高度的测量 您所在的位置:网站首页 三维测量的方法 基于halcon的3D点云重建和高度的测量

基于halcon的3D点云重建和高度的测量

2023-03-10 12:42| 来源: 网络整理| 查看: 265

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 ``

```js devclosewindow () *点云文件数据的读取 readobjectmodel3d ('E:/项目程序/2021-07-03-山西华翔/刹车卡钳/刹车卡钳/1.om3', 'mm', [], [], ObjectModel3D, Status) *获得点云的数据,例如高度 getobjectmodel3dparams (ObjectModel3D, 'pointcoordz', GenParamValue) devopenwindow (0, 0, 512, 512, 'black', WindowHandle) *faxiangliang法向量 *surfacenormalsobjectmodel3d (ObjectModel3D, 'mls', [], [], ObjectModel3DNormals) *点云曲面重建,常用三角网格算法 triangulateobjectmodel3d (ObjectModel3D, 'greedy', [], [], TriangulatedObjectModel3D, Information) *显示点云数据 阻塞显示,需要点击继续 *第一个参数是窗口的句柄 *第二个是点云的句柄 *第三个和第四个参数是相机的内参和外参 *第五个和第六个参数是重要的,第五个写参数名,第六个是参数名的值 例如颜色什么的 七八九如下 visualizeobjectmodel3d (WindowHandle, TriangulatedObjectModel3D, [], [], ['lut','colorattrib'], ['color1','coord_z'], '点云显示', '标签', '提示客户做什么的', PoseOut)

writeobjectmodel_3d (TriangulatedObjectModel3D, 'om3', 'E:/123', [], [])

```

image.png

``` devclosewindow () *读取点云数据 readobjectmodel3d ('E:/项目程序/2021-07-03-山西华翔/刹车卡钳/刹车卡钳/1.om3', 'm', [], [], ObjectModel3D, Status) devopenwindow (0, 0, 512, 512, 'black', WindowHandle) *显示点云数据 visualizeobjectmodel3d (WindowHandle, ObjectModel3D, [], [], ['lut','colorattrib','disppose'], ['color1','coordz','true'], [], [], [], PoseOut) *得到要测试的表面点云数据 getobjectmodel3dparams (ObjectModel3D, 'pointcoordz', GenParamValue) *点云筛选有两个函数 selectpointsobjectmodel3d 筛选孤立散点的特征 *点的x,y z 坐标,以及法向量的x y z 都可以 *第一个参数时句柄,第二个时特征名称,第三第四是最大和最小值 selectpointsobjectmodel3d (ObjectModel3D, 'pointcoordz', 122, 150, ObjectModel3DThresholded) *显示点云 visualizeobjectmodel3d (WindowHandle, ObjectModel3DThresholded, [], PoseOut,['lut','colorattrib','disppose'], ['color1','coordz','true'], [], [], [], PoseOut1) *点云连通集合断开; 设置联通条件,点的最小距离什么的 connectionobjectmodel3d (ObjectModel3DThresholded, 'distance3d', 0.5, ObjectModel3DConnected) getobjectmodel3dparams (ObjectModel3DConnected, 'numpoints', GenParamValue1) *筛选点云联通集合 selectobjectmodel3d (ObjectModel3DConnected, 'numpoints', 'and', 5000, 10000000, ObjectModel3DSelected) visualizeobjectmodel3d (WindowHandle, ObjectModel3DSelected, [], PoseOut,['lut','colorattrib','disppose'], ['color1','coordz','true'], [], [], [], PoseOut1) *得到基础面的点云数据集合 selectpointsobjectmodel3d (ObjectModel3D, 'pointcoordz', 150, 500, ObjectModel3DThresholded2) visualizeobjectmodel3d (WindowHandle, ObjectModel3DThresholded2, [], PoseOut,['lut','colorattrib','disppose'], ['color1','coordz','true'], [], [], [], PoseOut1) *顶部点云坐标数据值Z的值 getobjectmodel3dparams (ObjectModel3DSelected, 'pointcoordz', GenParamValue2) *得到另一个的点云面的Z的值 getobjectmodel3dparams(ObjectModel3DThresholded2, 'pointcoordz', GenParamValue3) *求两个面的Z值的平均值 tuplemean (GenParamValue2, Mean1) tuplemean (GenParamValue3, Mean2) *计算两个面的高度 H:=Mean1-Mean2 parm[0]:='shift+left button zoom' parm[1]:='ctrl+left button suofang' parm[2]:='left button zoom' visualizeobjectmodel3d (WindowHandle, ObjectModel3D, [], PoseOut,['lut','colorattrib','disppose'], ['color1','coordz','true'], '高度为'+H+'mm', '模型的样子', parm, PoseOut1) *顶部点云坐标数据值Z的值

```

image.png



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有