一、簡介
入門級別的學習,就是簡單的計算一個高度差,其原理如下:
1、先選出上面一個面的點,然后計算出在一個坐標系想的均值高度
2、篩選出下面一個面的點,然后計算出這個平面上的點的均值高度
3、高度差
4、顯示
二、代碼顯示
*1讀入點云數(shù)據(jù)
read_object_model_3d ('./points.om3', 'mm', [], [], ObjectModel3D, Status)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], ['lut','color_attrib','disp_pose'], ['color1','coord_z','true'], [], [], [], PoseOut)
*2得到電池表面點云的數(shù)據(jù)(mm),獲得Z軸方向上的點的高度
get_object_model_3d_params (ObjectModel3D, 'point_coord_z', GenParamValue)
* 通過高度來選出那個第一個面上的點
select_points_object_model_3d (ObjectModel3D, 'point_coord_z', 15, 16, ObjectModel3DThresholded)
* 顯示 第一個平面的模型
visualize_object_model_3d (WindowHandle, ObjectModel3DThresholded, [], [], ['lut','color_attrib','disp_pose'], ['color1','coord_z','true'], [], [], [], PoseOut1)
*去掉噪點
connection_object_model_3d (ObjectModel3DThresholded, 'distance_3d', 1, ObjectModel3DConnected)
get_object_model_3d_params (ObjectModel3DConnected, 'num_points', GenParamValue1)
* 通過點的個數(shù)來選出模型
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'], [], [], [], PoseOut1)
*3得到背景的點云數(shù)據(jù)集合(mm)
select_points_object_model_3d (ObjectModel3D, 'point_coord_z', 12, 14, ObjectModel3DBackGround)
visualize_object_model_3d (WindowHandle, ObjectModel3DBackGround, [], PoseOut1, ['lut','color_attrib','disp_pose'], ['color1','coord_z','true'], [], [], [], PoseOut2)
*4求電池上表面點云的z坐標值
get_object_model_3d_params (ObjectModel3DBattery, 'point_coord_z', GenParamValue1)
*5求背景表面的點云的z坐標值
get_object_model_3d_params (ObjectModel3DBackGround, 'point_coord_z', GenParamValue2)
*6求電池上表面點云的z坐標的平均值
A:=mean(GenParamValue1)
*7求背景表面點云的z坐標的平均值
B:=mean(GenParamValue2)
*8求電池表面的高度
H:=A-B
Param[0]:='Shift+left button Zoom'
Param[1]:='ctrl+ left button Move'
Param[2]:='left button Rotat'
visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], ['lut','color_attrib','disp_pose'], ['color1','coord_z','true'], '電池點云的高度為'+H+'mm', 'Battery Object', Param, PoseOut)
文章來源:http://www.zghlxwxcb.cn/news/detail-503882.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-503882.html
到了這里,關于Halcon 簡單入門3D點云計算高度的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!