• 二维测量有一种形态学的方法,参照我之前的博客。
    形态学方法测量
  • 本文主要介绍一种建立测量模型的方法,对直线和圆进行测量.

一.圆心度测量

1.设定测量模型
  • 首先将我们将待测量圆的半径圆心,以及容错度声明出来。
  • 创建测量句柄
 *1.创建测量句柄create_metrology_model (MetrologyHandle)set_metrology_model_image_size (MetrologyHandle, Width, Height)
  • 初始化测量模型,这里用到我们第一步声明的圆的信息
    1.CircleRadiusTolerance:也就是容错度,我们绘制测量矩形的高。
    2.CircleRadiusTolerance2:测量矩形的宽。
    2.sigma:高斯滤波掩膜大小
    3.MeasureThreshold:检测边缘的阈值
        add_metrology_object_circle_measure (MetrologyHandle, CircleInitRow, CircleInitColumn, CircleInitRadius, CircleRadiusTolerance, CircleRadiusTolerance2, sigma, MeasureThreshold, [], [], MetrologyCircleIndices)
  • 为测量模型设置参数
*‘uniform’参数是放置区域出现正负边缘,只测量正边缘或负边缘
set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices, 'measure_transition', 'uniform')
*最小分数值,与匹配道理一样,背景环境越复杂,分数设定应该越高
set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices, 'min_score', .1)
  • 得到测量模型,绑定一个点,从此测量模型随该点移动
get_metrology_object_measures (Contour, MetrologyHandle, 'all', 'all', MRow, MColumn)set_metrology_model_param (MetrologyHandle, 'reference_system', [Row,Column,0])dev_set_color('green')get_metrology_object_measures (Contour, MetrologyHandle, 'all', 'all', MRow, MColumn)

二.使用测量模型进行测量

  • 应该有注意到,测量模型被仿射到row=0,column=0的位置。
  • 将模型添加到当前图像的位置
 align_metrology_model (MetrologyHandle, Row, Column, 0)
apply_metrology_model (OrginImage, MetrologyHandle)
  • 两种方法得到边缘
    1.获得测量模型内检测到区域所有的点
  • 如果区域有噪声,这种方法并不理想
    2.获得边缘点
  get_metrology_object_result (MetrologyHandle, 'all', 'all', 'used_edges', 'row', UsedRow)get_metrology_object_result (MetrologyHandle, 'all', 'all', 'used_edges', 'column', UsedColumn)
  • 并将这些边缘点拟合成线
  gen_cross_contour_xld (UsedEdges, UsedRow, UsedColumn, 2, rad(45))      gen_contour_polygon_xld(Contour,UsedRow, UsedColumn)  * 拟合圆fit_circle_contour_xld(Contour, 'algebraic', -1, 0, 0, 3, 2, FinalRow, FinalColumn, FinalRadius, StartPhi, EndPhi, PointOrder)

  • 本图圆环有一定阴影,采用图像增强去噪
  scale_image (Image, ImageScaled, 3.5, -100)

二.测量模型边缘检测

  • 思路与圆检测一样
  • 在初始化模型的位置,有所改变
  • LineRow1, LineColumn1, LineRow2, LineColumn2,边缘线的起始点和终点
add_metrology_object_line_measure (MetrologyHandle, LineRow1, LineColumn1, LineRow2, LineColumn2, Tolerance, 5, 1, 20, [], [], Index1)

  • 通过上述方法二,得到边缘点
 get_metrology_object_result (MetrologyHandle, 'all', 'all', 'used_edges', 'row', UsedRow)get_metrology_object_result (MetrologyHandle, 'all', 'all', 'used_edges', 'column', UsedColumn)

Halcon2D测量-边缘直线测量+圆环测量相关推荐

  1. Halcon 测量直线和圆环的线宽

    测量直线和圆环的线度 1. 场景说明 2. 简单分析 3. 算法效果 4. halcon代码和图片下载 1. 场景说明 如下图,有5个焊印,现在我想测量焊印的宽度,检查有没有断焊,漏焊,焊印宽度很窄的 ...

  2. python opencv卡尺测量边缘距离

    opencv 卡尺法 测量边缘距离 参考来源 :https://github.com/crackwitz/metrology-demo 前言 一.测量方法 二.测量步骤 1.获取直线的像素 2.高斯滤 ...

  3. opencv 卡尺法 测量边缘距离

    opencv 卡尺法 测量边缘距离 参考来源 :https://github.com/crackwitz/metrology-demo 文章目录 opencv 卡尺法 测量边缘距离 前言 一.测量方法 ...

  4. 水准网测量平差matlab_【干货】史诗级测量大神分享道路测量全过程经验

    工程施工测量事关重大,而且并不如许多人所想的,手里操作着个测量仪器就是工程测量的全部,测量人员的水平高低,其实更体现在预见能力和谋划能力上. 道路施工单位进场后,作为一个经验丰富的测量工程师,心中要有 ...

  5. lisp 边坡_史诗级测量大神分享---道路测量全过程经验

    原标题:史诗级测量大神分享---道路测量全过程经验 工程施工测量事关重大,而且并不如许多人所想的,手里操作着个测量仪器就是工程测量的全部,测量人员的水平高低,其实更体现在预见能力和谋划能力上. 道路施 ...

  6. C#联合halcon源码 CAD测量比对 CAD图纸 测量 海康相机

    C#联合halcon源码 CAD测量比对 CAD图纸 测量 海康相机 通常测量规则的物体,通过找边,找圆,求线线交点,点到线的距离,很容易测量尺寸. 这个源码的测量物体是不规则的,很多凸凹的地方都需要 ...

  7. 强大测量功能,丰富参数测量

    通常来讲,工程师日常使用波形测量仪器正确捕获波形后,需要对波形的参数进行测量和统计.强大测量功能,丰富参数测量功能,越来越是对波形测量仪器的基本要求,本文主要围绕广州致远电子ZDL6000示波记录仪测 ...

  8. 血氧心率测量仪(带温湿度测量功能)OLED显示

    血氧心率测量仪(带温湿度测量功能)OLED显示 原理图资料 模块说明 测试数据处理图 部分代码展示 资料包 原理图资料 模块说明 数字温湿度传感 DHT11 ►相对湿度和温度测量 ►全部校准,数字输出 ...

  9. 迈卓诺(Metronor)光笔测量仪--大型模具的测量利器

      迈卓诺(Metronor)光笔测量仪简单.轻便,却可实现长达30m的精确测量,出色的隐藏点测量和多点同步测量能力,更使得它成为适用于车间现场的真正的大尺寸坐标测量机,为重型.大型零件的检测提供了恰 ...

最新文章

  1. node 压缩模块速成
  2. Redis之七种武器
  3. css实现图片自适应容器的几种方式
  4. sublime text 常用快捷键
  5. SpringSecurity remember功能持久化token信息
  6. Java常用类(2)--日期时间相关类Date、Calendar、LocalDateTime、Instant全面
  7. 一张图带你了解Android5.0中的colorPrimary、colorPrimaryDark、colorAccent
  8. 软工实践-第三次会议
  9. c语言从入门到精通_C语言基本概念(上)【C语言入门到精通】
  10. python爬取淘宝网页信息
  11. Vijos P1199核弹危机
  12. ubuntu 安装qq
  13. 软件开发的流程和常用模式
  14. 如何在 Mac 上右键单击?
  15. 导师不喜欢自己怎么办?
  16. 爬虫和网易云音乐API的一次尝试
  17. HTML小游戏8 —— 小霸王游戏机网页版(附完整源码)
  18. 运行代码后出现Process finished with exit code 0是为什么?
  19. CEF 、chromium源码下载前相关代理配置
  20. Commonsense and Named Entity Aware Knowledge Grounded Dialogue Generation

热门文章

  1. 【机器学习】什么是机器学习?
  2. SysML语言转换赛博物理语言项目合作
  3. java仿qq群聊_[转载]仿QQ聊天室群聊的练习心得
  4. python读取mp4文件失败_Python代码打开本地.mp4格式文件的方法-mp4文件
  5. PCB Type-C 5V供电
  6. 液压千斤顶使用注意事项
  7. 因段子引发的软件测试思考
  8. h3c 链路聚合测试_链路聚合技术
  9. 三星s7android7,三星S7刷安卓7.0后,传承了Note7的一个卖点
  10. Hadoop学习之路(二)Hadoop发展背景