首先给出一个问题:如下边一个图片中,如何获取矩形的测量,也就是说,需要更准确的矩形位置参数?halcon提供的一般方法是,首先基本将矩形框住,然后用测量对象进行精确测量。因此,该矩形大致的中心点,长度、宽度、方向角要基本给出,见

首先给出代码,然后一条一条解释代码的意义:

read_image (Image, 'rect2')
rgb1_to_gray(Image,Image)
create_metrology_model (MetrologyHandle)
get_image_size (Image, Width, Height)
set_metrology_model_image_size (MetrologyHandle, Width, Height)
add_metrology_object_rectangle2_measure (MetrologyHandle, 172.3, 239.2, rad(11.609), 146.7, 50.9, 30, 12, 1, 30, [], [], Index)apply_metrology_model (Image, MetrologyHandle)get_metrology_object_result (MetrologyHandle, Index, 'all', 'result_type', 'all_param', Rectangle)
get_metrology_object_result_contour (Contour, MetrologyHandle,  Index, 'all', 1.5)
clear_metrology_model (MetrologyHandle)

1)   create_metrology_model (MetrologyHandle)

该语句定义一个测量容器,该容器可以盛放许多不同的测量对象,本例中测量对象只有一个。

2)  set_metrology_model_image_size (MetrologyHandle, Width, Height)

定义测量容器针对的测量范围,本例是全图。

3) add_metrology_object_rectangle2_measure( : : MetrologyHandleRowColumnPhiLength1Length2,                                      *定义外侧包含矩形框

MeasureLength1,MeasureLength2,                                                                         *定义测量对象

MeasureSigmaMeasureThresholdGenParamNameGenParamValue : Index)   *定义被检图像灰度

  • 理解该语句,首先要理解【被检物体、矩形范围框、和检测对象】三者的关系。如下图:

  • 【被检物体、矩形范围框、和检测对象】三者的对应参数定义如下图:

* 矩形类计量对象的几何形状由其中心(Row, Column)、主轴φ的方向以及半边长度Length1和Length2指定。

* Phi的输入值自动映射到间隔
* 矩形测量区域垂直于区域矩形的边界。与矩形边界垂直和相切的测量区域的半边长度在“ Length1”和“ Length2”中设置。
* 测量区域的中心位于矩形的边界上。参数MeasureSigma指定了一个标准偏差,算子使用该标准偏差应用计量学模型来平滑图像的灰度值。
* 可以使用参数MeasureThreshold来选择突出边缘,该参数构成了一个振幅阈值,即边缘一阶导数的绝对值。

此外,还可以在GenParamName和GenParamValue中调整一些通用参数。特别是,可以设置运算 set_metrology_object_param 中可用的所有通用参数。但请注意,对于许多应用程序,默认值已足够,无需进行调整。

运算符 add_metrology_object_rectangle2_measure返回参数索引中计量模型内添加的计量对象的Index索引。

4)get_metrology_object_result( : : MetrologyHandleIndexInstanceGenParamNameGenParamValue : Parameter)

获取测量结果。

get_metrology_object_result 允许访问通过apply_metrology_model 获得的测量测量对象MetrologyHandle的测量结果。参数 Index指定查询结果的计量对象(MetrologyHandle中有多个计量对象)。对于设置为“all”的 Index,将返回所有计量对象的结果。通过参数 Instance,可以指定,在参数中返回结果是哪个测量实例的结果。将实例 Instance 设置为“all”将返回所有实例的结果。可以使用不同的泛型参数来控制参数中的返回值Parameter。泛型参数名称以 GenParamName传递。相应的值以GenParamValue传递。以下参数和值是可能的:

5)get_metrology_object_result_contour( : Contour : MetrologyHandleIndexInstanceResolution : )

获取测量结果。即以上测量的轮廓线。

最后测量结果如图:

如果还不明白,参考下文,文中继续探讨本问题。

参考网文:测量函数

Halcon知识: 矩形测量相关推荐

  1. halcon联合C#测量十字Mark中心

    halcon联合C#测量十字Mark中心 函数说明 public void FitRectangleMeasure(HWindow 窗口句柄, HImage 图像, out double 中心Y坐标, ...

  2. Halcon之一维测量

    Halcon之一维测量 一维测量 1.基本概念 1.1 获取图像 1.2 创建测量对象 1.3 测量 1.4 销毁测量对象 2 扩展概念 2.1 辐射校准图像 2.2 对齐 ROI 或图像 2.3 校 ...

  3. halcon知识:圆度和紧凑度

    一.说明 本文是halcon知识:select_shape究竟怎么用(1)的继续,关于select_shape的用途说的还不够,因为这些属性很多,有必要分开介绍. 二.圆度和紧凑度的直观演示 2.1 ...

  4. 【Halcon二维测量】——使用计量模型以亚像素精度测量圆和矩形

    算法大致思路如下:       1.创建计量模型模板并设置计量对象图像大小       2.根据先验知识生成相关图形形状,如矩形,圆,并将其加入到创建的模板中       3.设置模板的相关参数,包括 ...

  5. Halcon缺陷检测——测量拟合

    缺陷检测--测量拟合 1. 简单聊一聊测量的那些事 2. 做几个测量判断缺陷的项目 案例1. 测量液体线高度 案例2. 检测矩形通孔的缺陷 下载地址: 1. 简单聊一聊测量的那些事 测量为什么也能做缺 ...

  6. halcon之机器视觉测量-卡尺测量

    流程: halcon代码如下: ead_image (ImageModel, 'image/dip_switch_model.png') get_image_size (ImageModel, Wid ...

  7. halcon知识:对空图像的系列操作

    一.说明 halcon生成一个空白图像是有意义的,尤其是设计算法实验的时候.这里给出单生成通道 图像,和多通道图像方法. 二.生成灰度图像 gen_image_const(Image,'byte',5 ...

  8. Halcon知识: XLD的概念

    一.halcon中XLD的概念与应用, 1.1  halcon中什么是XLD?        XLD(eXtended Line Descriptions):XDL就是一个轮廓函数,它不是基于像素,人 ...

  9. halcon知识:图像纹理特征提取cooc_feature_matrix

    一.关于共生矩阵 如果不懂啥叫共生矩阵,将无法阅读该文.如果试图搞明白啥叫共生矩阵,请看我的另一篇博文,<hjalcon知识:共生矩阵> 本片介绍共生矩阵产生的其它属性:能量.相关性.同质 ...

最新文章

  1. 【C 语言】数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )
  2. C shell命令行解释器
  3. php excel中解析显示html代码_骑士cms从任意文件包含到远程代码执行漏洞分析
  4. vs运行时 文本可视化工具 无法点开_webpack 优化:2 款工具帮你找到构建速度“变慢”的原因...
  5. linux搜索关键字并定位,Linux系统中文件定位与查找(示例代码)
  6. POJ 2653 Pick-up sticks 判断线段相交
  7. 《MySQL必知必会》[01] 基本查询
  8. 免费软件做的不错的,这里要说一个叫《飞秋》的软件
  9. mysql用一条sql语句删除重复记录_mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句...
  10. vector使用中可能出现的一个陷阱
  11. python必背代码-Python中期学者必看:让你的python代码更高效灵活
  12. zz Oracle存储过程总结
  13. ajax编辑教程,今天手动编写了一个简易的 ajax 发起器(JavaScript)
  14. 如何使用Apple Watch控制Apple TV
  15. 校园二手交易系统设计与实现
  16. java 判断pc还是手机_Java判断验证访问是手机端还是PC电脑端
  17. ORA-00932: 数据类型不一致: 应为 -,但却获得 -
  18. 微信电子驾驶证怎么查询
  19. 基于贝叶斯公式的拼音输入法二元模型实现
  20. 泰拉瑞亚正版大型服务器,泰拉瑞亚1.3.5.3物品大全-泰拉瑞亚1.3.5.3服务器版v1.3.5.3 安卓版-腾牛安卓网...

热门文章

  1. MATLAB应用实战系列NSGA-II多目标优化算法原理及应用实例(附MATLAB代码)
  2. 支持向量机原理(二)
  3. 使用FP-growth算法发现频繁项集
  4. TensorFlow2简单入门-单词嵌入向量
  5. QTexe软件设置系统默认的图标
  6. python 模块(Module)和包
  7. Gumble Distribution耿贝尔分布
  8. CCKS-2017 行业知识图谱构建与应用-下篇
  9. Redis数据库的应用场景介绍
  10. HelloFresh迁移至新的API网关,实现微服务架构