01-halcon读取点云测高

halcon读取点云测高

1、点云数据链接:https://pan.baidu.com/s/14SD1DIDptyOiuyQy3kTebA
提取码:rqy4
2、思路:读取om3格式点云;
获取电池表面点云Z值平均值;
获取底面点云Z值平均值;
两个点云Z值平均值相减获得电池高度;
3、halcon代码实现:

dev_get_window (WindowHandle)
*1读入点云数据(文件中)
read_object_model_3d ('./2020-01-10-235331.om3', 'm', [], [], ObjectModel3D, Status)
* visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], ['lut','color_attrib','disp_pose'],\
                                   ['color1','coord_z','true'], [], [], [], PoseOut)
*2得到电池表面点云的数据(mm)
get_object_model_3d_params (ObjectModel3D, 'point_coord_z', GenParamValue)
*去掉噪点
select_points_object_model_3d (ObjectModel3D, 'point_coord_z', 15, 16, ObjectModel3DThresholded)
connection_object_model_3d (ObjectModel3DThresholded, 'distance_3d', 1, ObjectModel3DConnected)
get_object_model_3d_params (ObjectModel3DConnected, 'num_points', GenParamValue1)
select_object_model_3d (ObjectModel3DConnected, 'num_points', 'and', 1000, 50000, ObjectModel3DBattery)
* visualize_object_model_3d (WindowHandle, ObjectModel3DBattery, [], [], ['lut','color_attrib','disp_pose'],\
                                   ['color1','coord_z','true'], [], [], [], PoseOut)
*3得到背景的点云数据集合(mm)
select_points_object_model_3d (ObjectModel3D, 'point_coord_z', 12, 14, ObjectModel3DBackGround)
* visualize_object_model_3d (WindowHandle, ObjectModel3DBackGround, [], [], ['lut','color_attrib','disp_pose'],\
                                   ['color1','coord_z','true'], [], [], [], PoseOut)
*4求电池上表面点云的z坐标值,求背景表面的点云的z坐标值
get_object_model_3d_params (ObjectModel3DBattery, 'point_coord_z', GenParamValueHeigtBattery)
get_object_model_3d_params (ObjectModel3DBackGround, 'point_coord_z', GenParamValueHeigtGround)
*5求电池上表面点云的z坐标的平均值,求背景表面点云的z坐标的平均值
HeigtBattery :=mean(GenParamValueHeigtBattery)
HeightGround :=mean(GenParamValueHeigtGround)
*8求电池表面的高度
H := HeigtBattery-HeightGround

visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], \
                           ['lut','color_attrib','disp_pose'],\
                           ['color1','coord_z','true'], \
                           '电池点云的高度为'+H+'mm', \
                           'Battery Object',\
                             [], PoseOut)

* disp_object_model_3d (WindowHandle, ObjectModel3D,  [],\
                           [], \
                           'color', \
                           'primitive')

4、效果图:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值