流程:

halcon代码如下:

ead_image (ImageModel, 'image/dip_switch_model.png')
get_image_size (ImageModel, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (ImageModel)
dev_set_draw ('margin')
dev_set_color ('yellow')******************************************************测量窗口制作*********************************************
*左边测量直线
draw_line (WindowHandle, HoriLeftBeginRowMode, HoriLeftBeginColumnMode, HoriLeftEndRowMode, HoriLeftEndColumnMode)
gen_region_line (HoriLeftLinesMode, HoriLeftBeginRowMode, HoriLeftBeginColumnMode, HoriLeftEndRowMode, HoriLeftEndColumnMode)
dev_display (HoriLeftLinesMode)*右边测量直线
draw_line (WindowHandle, HoriRightBeginRowMode, HoriRightBeginColumnMode, HoriRightEndRowMode, HoriRightEndColumnMode)
gen_region_line (HoriRightLinesMode, HoriRightBeginRowMode, HoriRightBeginColumnMode, HoriRightEndRowMode, HoriRightEndColumnMode)
dev_display (HoriRightLinesMode)stop()******************************************************创建形状模板*********************************************
*画矩形
draw_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2)
*生成矩形
gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
*剪切矩形区域图像
reduce_domain (ImageModel, Rectangle, ImageReduced)
*创建形状模型
create_shape_model (ImageReduced, 'auto', 0, rad(360), 'auto', 'none', 'use_polarity', 30, 10, ModelID)
*create_shape_model_xld (SelectedContoursModel, 'auto', rad(0), rad(90), 'auto', 'auto', 'ignore_local_polarity', 3, ModelID)
*在搜索图像中搜索模版
find_shape_model (ImageModel, ModelID, 0, rad(360), 0.4, 1, 0, 'least_squares', 0, 0.7, ModelRow, ModelColumn, ModelAngle, ModelScore)
*获取模板轮廓
get_shape_model_contours (ShapeModel, ModelID, 1)stop ()******************************************************测量模型创建**************************************************创建测量模型
create_metrology_model (MetrologyHandle)
*设置测量对象的图像大小
set_metrology_model_image_size (MetrologyHandle, Width, Height)
*添加测量直线对象到测量模型中
Line1 := [HoriLeftBeginRowMode, HoriLeftBeginColumnMode, HoriLeftEndRowMode, HoriLeftEndColumnMode]
Line2 := [HoriRightBeginRowMode, HoriRightBeginColumnMode, HoriRightEndRowMode, HoriRightEndColumnMode]
add_metrology_object_generic (MetrologyHandle, 'line', [Line1,Line2], 20, 5, 1, 20, [], [], MetrologyLine)
*获取测量模型里的模型轮廓
get_metrology_object_model_contour (ModelContour, MetrologyHandle, 'all', 1.5)
*获取测量模型里的测量区域
get_metrology_object_measures (MeasureContour, MetrologyHandle, 'all', 'all', Row, Column)
*显示图像及轮廓
dev_display (ImageModel)
dev_display (ModelContour)
设置测量对象的参考坐标系原点在模板坐标位置
set_metrology_model_param (MetrologyHandle, 'reference_system', [ModelRow, ModelColumn,0])
stop()******************************************************开始测试*************************************************
*加载离线图像
* Image Acquisition 01: Code generated by Image Acquisition 01
ImageFiles := []
ImageFiles[0] := 'image/dip_switch_model.png'
ImageFiles[1] := 'image/dip_switch_training_01.png'
ImageFiles[2] := 'image/dip_switch_training_02.png'
ImageFiles[3] := 'image/dip_switch_training_03.png'
ImageFiles[4] := 'image/dip_switch_training_04.png'
ImageFiles[5] := 'image/dip_switch_training_05.png'
ImageFiles[6] := 'image/dip_switch_training_06.png'
ImageFiles[7] := 'image/dip_switch_training_07.png'
ImageFiles[8] := 'image/dip_switch_training_08.png'
ImageFiles[9] := 'image/dip_switch_training_09.png'
ImageFiles[10] := 'image/dip_switch_training_10.png'
ImageFiles[11] := 'image/dip_switch_training_11.png'
ImageFiles[12] := 'image/dip_switch_training_12.png'for Index := 0 to |ImageFiles| - 1 by 1*设置区域填充模式dev_set_draw ('fill')*读取图像read_image (Image, ImageFiles[Index])*显示图像dev_display (Image)*在搜索图像中寻找模板find_shape_model (Image, ModelID, 0, rad(360), 0.4, 1, 0, 'least_squares', 0, 0.7, SearchRow, SearchColumn, SearchAngle, SearchScore)*对齐测量模型align_metrology_model (MetrologyHandle, SearchRow, SearchColumn, SearchAngle)*测量并对测量区域拟合几何形状apply_metrology_model (Image, MetrologyHandle)*获取测量结果里的开始行坐标get_metrology_object_result (MetrologyHandle, MetrologyLine, 'all', 'result_type', 'row_begin', RowBegin)*获取测量结果里的开始列坐标get_metrology_object_result (MetrologyHandle, MetrologyLine, 'all', 'result_type', 'column_begin', ColBegin)*获取测量结果里的结束行坐标get_metrology_object_result (MetrologyHandle, MetrologyLine, 'all', 'result_type', 'row_end', RowEnd)*获取测量结果里的结束列坐标get_metrology_object_result (MetrologyHandle, MetrologyLine, 'all', 'result_type', 'column_end', ColEnd)*获取测量区域get_metrology_object_measures (SearchContour, MetrologyHandle, 'all', 'all', Row, Column)*获取测量结果轮廓get_metrology_object_result_contour (MeasuredLines, MetrologyHandle, 'all', 'all', 1.5)*显示测量区域和测量结果轮廓dev_set_color ('green')dev_display (SearchContour)dev_set_color ('blue')dev_display (MeasuredLines)******************************************************距离计算******************************************************************************生成两个直线对象并连接起来gen_empty_obj (RegionLine)for i:=0 to |RowBegin|-1 by 1gen_region_line (Lines, RowBegin[i], ColBegin[i], RowEnd[i], ColEnd[i])concat_obj (RegionLine, Lines, RegionLine)endfor*计算两个直线对象之间的距离select_obj (RegionLine, FirstLine, 1)select_obj (RegionLine, SecondLine, 2)distance_rr_min (FirstLine,SecondLine, MinDistance, Row1, Column1, Row2, Column2)*在屏幕坐上方0,100位置数值长度值dev_set_color ('green')set_tposition (WindowHandle, 0, 100)write_string (WindowHandle, '两条直线之间的距离='+MinDistance)stop()endfor
stop()
*清除测量模型
clear_metrology_model (MetrologyHandle)

halcon之机器视觉测量-卡尺测量相关推荐

  1. Halcon学习笔记之测量系列-卡尺测量

    介绍完简单的一维测量之后,下面我们来介绍下常用的卡尺测量.Halcon中的Metrology方法即为卡尺工具,可用来拟合线,圆,这种方法对于目标比背景很明显的图像尺寸测量是很方便的,不需要用blob进 ...

  2. Halcon卡尺测量

    通过卡尺测量实现定位圆 素材图片[素材来源于iHalcon]: 处理效果如下: 代码: read_image (Image, 'C:/Users/Sawyer/Desktop/10_39545_034 ...

  3. 【机器视觉-卡尺测量、间距检测】

    CaliperDemo.exe 卡尺测量.间距检测 边缘极性: 有亮到暗.暗到亮和任意 3 种模式: 亮到暗表示从亮度高过度到亮度低的边缘: 暗到亮表示从亮度低过度到亮度高的边缘: 任意模式则亮到暗和 ...

  4. 卡尺测量的最小范围_工厂车间里常用的测量仪器使用方法介绍,你都会用吗?...

    一.测量器具的分类 测量器具是一种具有固定形态.用以复现或提供一个或多个已知量值的器具.按用途的不同量具可分为以下几类: 1. 单值量具 只能体现一个单一量值的量具.可用来校对和调整其它测量器具或作为 ...

  5. 卡尺测量的最小范围_不知道这四大基本原则,你还有脸在测量圈混?

    阿贝原则(即串联原则) 被测件的测量轴线与标准量的测量轴线相重合或在其延长线上,称为阿贝原则. *注意:在使用阿贝原则的测量器具时,应使被测工件尽可能地向主尺靠拢以减小两轴线之作的距离L,从而可减小测 ...

  6. HALCON示例程序particle.hdev测量小圆部分

    HALCON示例程序particle.hdev测量小圆部分 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () dev_close_window () dev_open_w ...

  7. HALCON示例程序measure_circles.hdev测量圆的半径

    HALCON示例程序measure_circles.hdev测量圆的半径 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () read_image (Image, 'cir ...

  8. HALCON示例程序inspect_bga.hdev测量bga焊点缺陷

    HALCON示例程序inspect_bga.hdev测量bga焊点缺陷 示例程序源码(加注释) 关于显示类函数解释 read_image (Image, 'bga_14x14_model') get_ ...

  9. 卡尺测量的最小范围_车间里常用的测量器具,别说没见过!

    数控技术在线 订单 | 技术 | 干货 | 社群 关注可加入机械行业群! 关注 一.测量器具的分类 测量器具是一种具有固定形态.用以复现或提供一个或多个已知量值的器具.按用途的不同量具可分为以下几类: ...

最新文章

  1. NLP未来,路在何方?12位巨佬联名指路!
  2. 50+篇《神经架构搜索NAS》2020论文合集
  3. 算法与数据结构 (三) 二叉树的简单应用 二叉查找树,二叉堆排序
  4. lua进入压缩包_使用lua语言制作贪吃蛇游戏(love2d)(一)开发环境的搭建
  5. qt的如何调整显示不为科学记数法_Excel操作技巧:如何将信息快速准确的录入Excel?...
  6. 美团点评企业研究报告
  7. C++代码中执行bat文件
  8. SASE 本质探究(1):什么是云化
  9. power apps 里 嵌套 html
  10. uniapp自定义开屏启动广告页
  11. 全球最强的女孩保养秘方大全
  12. 【51单片机学习笔记】基于STC11F04E的蜂鸣器音乐播放器
  13. UEFI 2 Overview
  14. Rust机器学习之Linfa
  15. 论坛帖子(文章)点赞功能设计
  16. 隧道工具proxytunnle
  17. quickpcb添加pcb库_quickpcb及相关元件库
  18. php sqlite3菜鸟,SQLite 创建数据库 | 菜鸟教程
  19. latex 参考文献显示问号_关于 VS Code、WinEdt、LaTeX 和 Markdown 的一些实用 Tips
  20. 变频器服务器电路板维修,变频器印制电路板的故障查找及维修方法

热门文章

  1. 变送器分类及产品的选择
  2. 医疗设备远程监控 5G千兆工业网关智慧医疗
  3. 品牌故事系列之一:APC成长传奇密码:永不停顿的创新
  4. ios开发text kit_第9章 iOS 7中文字排版和渲染引擎——Text Kit
  5. java计算机毕业设计旅游网站设计源代码+数据库+系统+lw文档
  6. 美国移动网络运营商:是时候关闭3G了
  7. 移动4g有信号无法连接服务器,在门口有4G的信号,但是进了房间里就没有了,上网都连不上。怎么避免这种情况?...
  8. 数据结构和算法-09.单向链路-重学(自写)-01
  9. bp神经网络performance怎么看,BP神经网络用什么软件
  10. RHSA系列压电水听器使用说明及注意事项