Halcon读取dxf文件生成xld

这篇博客介绍了如何利用Halcon读取DXF文件生成XLD,包括读取文件、合并相邻轮廓、进行仿射变换(如缩放、旋转、镜像)以及创建局部可变形模型的过程。示例代码详细展示了如何实现这些操作,并提供了实用技巧,如找到面积最大的轮廓并将其外接矩形调整到图像中。
摘要由CSDN通过智能技术生成

1.
read_contour_xld_dxf (Contours, DXFFliePath, [], [], DxfStatus)
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_scale (HomMat2DIdentity, Scale, Scale, 0, 0, HomMat2DScale)
*将任意仿射2D变换,即缩放、旋转、平移和倾斜(倾斜)应用于轮廓中给定的xld轮廓
*并以ContoursAffineTrans的形式返回变换后的轮廓
affine_trans_contour_xld (Contours, ContoursAffinTrans, HomMat2DScale)
copy_obj (ContoursAffinTrans, ImageCleared, 1, -1)
*主要应用于模板在X和Y方向有相同的形变的场合
create_scaled_shape_model_xld (ImageCleared, ‘auto’, 0, 360, ‘auto’, 0.9, 1.1, ‘auto’, [‘none’,‘no_pregeneration’], ‘ignore_local_polarity’, 5, ModelID)
find_scaled_shape_model (Image, ModelID, 0, 360, 0.9, 1.1, 0.8, 0, 0.5, ‘least_squares’, 0, 0.9, Row, Column, Angle, Scale, Score)
for MatchingObjIdx := 0 to |Score| - 1 by 1
hom_mat2d_identity (HomMat2)
hom_mat2d_scale (HomMat2, Scale[MatchingObjIdx], Scale[MatchingObjIdx], 0, 0, HomMat2)
hom_mat2d_rotate (HomMat2, Angle[MatchingObjIdx], 0, 0, HomMat2)
hom_mat2d_translate (HomMat2, Row[MatchingObjIdx], Column[MatchingObjIdx], HomMat2)
affine_trans_contour_xld (ModelContours, TransContours, HomMat2)
dev_display (TransContours)
endfor
return ()
2
**1、**Halcon读取dxf文件,得到的是dxf文件的机械坐标数值,举例说明:

*Create locally deformable model
read

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值