add_metrology_object_line_measure 抓线(对齐测量模型)

 

 下面奉上源码:(可以直接复制直接运行)

read_image (Image, 'printer_chip/printer_chip_01')
dev_get_window (WindowHandle)
dev_set_draw ('margin')
get_image_size (Image, Width, Height)

*创建模板
draw_rectangle2 (WindowHandle, ModelRow, ModelColumn, ModelPhi, ModelLength1, ModelLength2)
gen_rectangle2 (Rectangle, ModelRow, ModelColumn, ModelPhi, ModelLength1, ModelLength2)
reduce_domain (Image, Rectangle, ImageReduced)
create_shape_model (ImageReduced, 'auto', rad(0), rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)

*创建ROI
draw_rectangle2 (WindowHandle, RoiRow1, RoiColumn1, RoiPhi1, RoiLength1, RoiLength2)
*提取ROI的中轴线
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_rotate (HomMat2DIdentity, RoiPhi1, RoiRow1, RoiColumn1, HomMat2DRotate)
affine_trans_pixel (HomMat2DRotate, [RoiRow1+RoiLength2,RoiRow1-RoiLength2], [RoiColumn1,RoiColumn1], RowTrans, ColTrans)

*调整图像的位置和角度验证
hom_mat2d_identity (HomMat2DIdentity1)
hom_mat2d_translate (HomMat2DIdentity1, 64, 64, HomMat2DTranslate)
affine_trans_image (Image, Image, HomMat2DTranslate, 'constant', 'false')
rotate_image (Image, Image, -10, 'constant')
get_image_size (Image, Width, Height)
*模板查找
find_shape_model (Image, ModelID, rad(0), rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.9, FindRow, FindColumn, FindAngle, Score)
get_shape_model_contours (ModelContours, ModelID, 1)

*ROI 根据模板搜索 计算跟随坐标
hom_mat2d_identity (HomMat2DIdentity2)
hom_mat2d_rotate (HomMat2DIdentity2, FindAngle, FindRow, FindColumn, HomMat2DRotate1)
*RoiRow1+FindRow-ModelRow, RoiColumn1+FindColumn-ModelColumn 计算ROI到实时图像要平移的距离(ROI的坐标+(实时坐标-模板坐标))
affine_trans_pixel (HomMat2DRotate1, RoiRow1+FindRow-ModelRow, RoiColumn1+FindColumn-ModelColumn, RowTrans1, ColTrans1)
*ROI跟随
gen_rectangle2_contour_xld (Rectangle1, RowTrans1, ColTrans1, FindAngle, RoiLength1, RoiLength2)

*创建测量模型
create_metrology_model (MetrologyHandle)
*设置测量对象的图像大小
set_metrology_model_image_size (MetrologyHandle, Width, Height)
*设置测量参数
paramName:=['measure_transition','measure_select','num_measures','min_score']
paramValue:=['positive','first',10,0.5]
*创建测量模型ROI
add_metrology_object_line_measure (MetrologyHandle, RowTrans[0], ColTrans[0], RowTrans[1], ColTrans[1], RoiLength1, 1, 1, 30, paramName, paramValue, Index)
*修改模型参数
  *set_metrology_model_param()
  *set_metrology_model_param( : : MetrologyHandle, GenParamName, GenParamValue : )
  *函数说明: 设置测量模型的参数。
  *函数参数:
  *MeasureHandle:输入测量模型的句柄;
  *GenParamName:输入参数名称;参考: ‘camera_param’,输入相机参数由GenParamName= 'camera_param’指定,CameraParam是相机;
  *‘plane_pose’(是否相机三维姿态);
  *‘reference_system’(根据图像坐标系的平移(行、列)和旋转角度(角度),定义一种新的参考系统);
  *‘scale’(期望单位与原始单位的比率);
  *GenParamValue:输入参数值;参考:1.0, 0.1, ‘m’, ‘cm’, ‘mm’, ‘microns’, ‘um’;
set_metrology_model_param (MetrologyHandle, 'reference_system', [ModelRow, ModelColumn,0])
*模板匹配对齐
    *align_metrology_model( : : MetrologyHandle, Row, Column, Angle : )
    *函数说明: 测量模型的对齐/校准。
    *函数参数:
    *MeasureHandle:输入测量模型的句柄;
    *Row:对齐测量模型的列坐标;
    *Column:对齐测量模型的列坐标:
    *Angle:对齐测量模型的旋转角度。

align_metrology_model (MetrologyHandle, FindRow, FindColumn, FindAngle)
*应用测量
apply_metrology_model (Image, MetrologyHandle)
*获取测量结果
get_metrology_object_result (MetrologyHandle, 0, 'all', 'result_type', 'all_param', Parameter)
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row3, Column3)
get_metrology_object_result_contour (Contour, MetrologyHandle, 0, 'all', 1.5)
*清除/销毁测量对象
clear_metrology_model (MetrologyHandle)
dev_set_color ('green')
gen_cross_contour_xld (Cross, Row3, Column3, 16, 45)

(原图)

(结果)

*(红色字体为注解)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值