50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > Halcon 3D 计算3D模型的3D表面法线

Halcon 3D 计算3D模型的3D表面法线

时间:2024-04-03 23:25:42

相关推荐

Halcon 3D 计算3D模型的3D表面法线

一、简介

我们有个案例就是去掉杂点然后显示出来

1、读取图片

2、通过Z图去除其他的杂点

3、生产点云模型

4、显示3D模型并且显示3D表面法线

二、算子解释

*surface_normals_object_model_3d( : : ObjectModel3D, Method, GenParamName, GenParamValue : ObjectModel3DNormals)*计算三维物体模型的三维曲面法线*输入:*ObjectModel3D (input_control)包含3D点数据的3D对象模型句柄。*Method(input_control):法线计算方法 ‘mls’(移动最小二乘)是唯一支持的法线估算方法。*GenParamName (input_control)一般平滑参数的名称:‘mls_abs_sigma’, ‘mls_force_inwards’, ‘mls_kNN’, ‘mls_order’, ‘mls_relative_sigma’*GenParamValue (input_control)一般平滑参数的值:建议值:10、20、40、60、0.1、0.5、1.0、2.0、0、1、2、‘true’, ‘false’*输出:*ObjectModel3DNormals (output_control) object_model_3d(-数组)→(整数)具有计算出的三维法线的三维对象模型的句柄。

三、代码显示

Image_Path:='time_of_flight/'read_image (Image, Image_Path+'engine_cover_noisy_xyz_01')* 1、将图像分解成三个x y z 图decompose3 (Image, Image_x, Image_y, Image_z)get_image_size (Image_z, Width, Height)* 2 在Z图中选出目标threshold (Image_z, Region, 1e-30, 1)reduce_domain (Image_z, Region, Image_z)median_image(Image_z, ZmMedian, 'circle', 2.5, 'mirrored')threshold (ZmMedian, Region1, 0.422, 0.529)connection (Region1, ConnectedRegions)* 3、筛选出目标产品select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1526.52, 2806.82)reduce_domain (Image_x, SelectedRegions, Image_x)* 生产3D模型xyz_to_object_model_3d (Image_x, Image_y, Image_z, ObjectModel3D)connection_object_model_3d (ObjectModel3D, 'distance_3d', 0.005, ObjectModel3DConnected)select_object_model_3d (ObjectModel3DConnected, 'num_points', 'and', 100, 1e30, ObjectModel3DSelected)*4 显示模型 dev_open_window(0, 0, Width*4, Height*4, 'black', WindowHandle)Message_1:='3D_Model'visualize_object_model_3d(WindowHandle,ObjectModel3DSelected,[], [], ['point_size','disp_normals'], [2,'true'], Message_1, [], Instructions, PoseOut)surface_normals_object_model_3d(ObjectModel3DSelected,'mls', [], [], ObjectModel3DModel)*surface_normals_object_model_3d( : : ObjectModel3D, Method, GenParamName, GenParamValue : ObjectModel3DNormals)*计算三维物体模型的三维曲面法线*输入:*ObjectModel3D (input_control)包含3D点数据的3D对象模型句柄。*Method(input_control):法线计算方法 ‘mls’(移动最小二乘)是唯一支持的法线估算方法。*GenParamName (input_control)一般平滑参数的名称:‘mls_abs_sigma’, ‘mls_force_inwards’, ‘mls_kNN’, ‘mls_order’, ‘mls_relative_sigma’*GenParamValue (input_control)一般平滑参数的值:建议值:10、20、40、60、0.1、0.5、1.0、2.0、0、1、2、‘true’, ‘false’*输出:*ObjectModel3DNormals (output_control) object_model_3d(-数组)→(整数)具有计算出的三维法线的三维对象模型的句柄。create_surface_model(ObjectModel3DModel, 0.03, [], [], SFM)dev_open_window(0, 0, Width*4, Height*4, 'black', WindowHandle2)set_display_font(WindowHandle, 16, 'mono', 'true', 'false')Instructions[0] := 'Rotate: Left button'Instructions[1] := 'Zoom: Shift + left button'Instructions[2] := 'Move: Ctrl + left button'Message_1:='Surface——Model'visualize_object_model_3d(WindowHandle2,ObjectModel3DModel,[], [], ['point_size','disp_normals'], [2,'true'], Message_1, [], Instructions, PoseOut)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。