Halcon 简单入门3D点云盘算高度

打印 上一主题 下一主题

主题 651|帖子 651|积分 1953

一、简介

入门级别的学习,就是简单的盘算一个高度差,其原理如下:
1、先选出上面一个面的点,然后盘算出在一个坐标系想的均值高度
2、筛选出下面一个面的点,然后盘算出这个平面上的点的均值高度
3、高度差
4、表现
二、代码表现

  1. *1读入点云数据
  2. read_object_model_3d ('./points.om3', 'mm', [], [], ObjectModel3D, Status)
  3. dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
  4. visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], ['lut','color_attrib','disp_pose'], ['color1','coord_z','true'], [], [], [], PoseOut)
  5. *2得到电池表面点云的数据(mm),获得Z轴方向上的点的高度
  6. get_object_model_3d_params (ObjectModel3D, 'point_coord_z', GenParamValue)
  7. * 通过高度来选出那个第一个面上的点
  8. select_points_object_model_3d (ObjectModel3D, 'point_coord_z', 15, 16, ObjectModel3DThresholded)
  9. * 显示 第一个平面的模型
  10. visualize_object_model_3d (WindowHandle, ObjectModel3DThresholded, [], [], ['lut','color_attrib','disp_pose'], ['color1','coord_z','true'], [], [], [], PoseOut1)
  11. *去掉噪点
  12. connection_object_model_3d (ObjectModel3DThresholded, 'distance_3d', 1, ObjectModel3DConnected)
  13. get_object_model_3d_params (ObjectModel3DConnected, 'num_points', GenParamValue1)
  14. * 通过点的个数来选出模型
  15. select_object_model_3d (ObjectModel3DConnected, 'num_points', 'and', 1000, 50000, ObjectModel3DBattery)
  16. visualize_object_model_3d (WindowHandle, ObjectModel3DBattery, [], [], ['lut','color_attrib','disp_pose'], ['color1','coord_z','true'], [], [], [], PoseOut1)
  17. *3得到背景的点云数据集合(mm)
  18. select_points_object_model_3d (ObjectModel3D, 'point_coord_z', 12, 14, ObjectModel3DBackGround)
  19. visualize_object_model_3d (WindowHandle, ObjectModel3DBackGround, [], PoseOut1,  ['lut','color_attrib','disp_pose'], ['color1','coord_z','true'], [], [], [], PoseOut2)
  20. *4求电池上表面点云的z坐标值
  21. get_object_model_3d_params (ObjectModel3DBattery, 'point_coord_z', GenParamValue1)
  22. *5求背景表面的点云的z坐标值
  23. get_object_model_3d_params (ObjectModel3DBackGround, 'point_coord_z', GenParamValue2)
  24. *6求电池上表面点云的z坐标的平均值
  25. A:=mean(GenParamValue1)
  26. *7求背景表面点云的z坐标的平均值
  27. B:=mean(GenParamValue2)
  28. *8求电池表面的高度
  29. H:=A-B
  30. Param[0]:='Shift+left button Zoom'
  31. Param[1]:='ctrl+ left button Move'
  32. Param[2]:='left button Rotat'
  33. visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], ['lut','color_attrib','disp_pose'], ['color1','coord_z','true'], '电池点云的高度为'+H+'mm', 'Battery Object', Param, PoseOut)
复制代码

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小秦哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表