0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Halcon知识:矩形测量

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-04-23 09:56 次阅读

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

cbe89ef8-e052-11ed-bfe3-dac502259ad0.png

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

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( : : MetrologyHandle, Row, Column, Phi, Length1, Length2, *定义外侧包含矩形框 MeasureLength1,MeasureLength2, *定义测量对象

MeasureSigma, MeasureThreshold, GenParamName, GenParamValue : Index) *定义被检图像灰度

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

cc01006a-e052-11ed-bfe3-dac502259ad0.png

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

cc19ce24-e052-11ed-bfe3-dac502259ad0.png

* 矩形类计量对象的几何形状由其中心(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( : : MetrologyHandle, Index, Instance, GenParamName, GenParamValue : 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 : MetrologyHandle, Index, Instance, Resolution : )

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

最后轮廓结果如图:

cc32f584-e052-11ed-bfe3-dac502259ad0.png

如果原理上还不明白,参考下文,文中继续探讨本问题。也可参考网文:测量函数

测量问题

以上得到轮廓线并非测量结果。如何进一步解决测量问题,因为针对的情况很多,无法一一列举,这里仅对案例中提出的矩形进行矩形测量。

法1:用 fit_rectangle2_contour_xld可以从轮廓线提取矩形,根据长宽边满足测量。

法2:用gen_parallel_contour_xld(contour, parallelcontour, ‘regression_normal’, -Distance)直接得到平行线的距离,(长、宽各一个)

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 容器
    +关注

    关注

    0

    文章

    481

    浏览量

    21884
  • 矩形
    +关注

    关注

    0

    文章

    15

    浏览量

    12577

原文标题:Halcon知识: 矩形测量

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NI视觉图像转halcon图像

    labview采集图片可用用它转halcon,就可用使用halcon算子处理了
    发表于 02-21 16:35

    labview调用halcon软件包

    众所周知NI在视觉这块虽然有涉猎,但是它的一些算法性能比一些专业的视觉软件如halcon要差,不可否认,NI_vision在一些尺寸测量方面、找直线还是比较便利的。如今的视觉系统需求越来越复杂
    发表于 05-27 12:04

    labview调用halcon的方法

    labview调用halcon的方法
    发表于 03-12 14:40

    halcon与LabVIEW Vision混合编程接口问题

    各位大大, 之前一直在用LabVIEW Vision做图像处理,最近在学习halconhalcon里面的一些算子的功能比较强大,想通过halcon和Vision的混合编程开发图像处理程序,在
    发表于 06-29 11:13

    Labview里面使用Halcon的函数。 方法一:直接调用Halcon的函数。

    本帖最后由 高顺周 于 2016-10-14 19:06 编辑 在Labview使用Halcon,有两种方式。一种是创造一个Halcon程序的运行环境,然后根据路径直接调用对应的hdev程序
    发表于 08-15 14:14

    Labview里面使用Halcon的函数。 方式为:直接。运行后缀为hdev 的Halcon程序

    Labview里面使用Halcon的函数。 方式为:直接。运行后缀为hdev 的Halcon程序Halcon是由MVTec这个公司开发的。这家公司对自己有非常清晰的定位,他们就是图像处理函数的。其他
    发表于 08-15 16:38

    求助:labview与halcon之间的对象转换

    labview的视觉模块的识别率确实没有halcon的厉害,但是labview写程序却比halcon+.NET方便,于是在labview中调用halcon来编程。有个问题需要向各位请教一下,用
    发表于 08-24 09:32

    在labview中调用Halcon实例

    `本人写了一个小程序,在labview中调用halcon实现扫码功能,还存在一些问题,调用的halcon程序如果在循环中,则无法通过labview停止程序,必须等到halcon循环停止才能停止labview。或者在
    发表于 09-13 19:39

    labview与halcon连用

    本帖最后由 x451129684 于 2017-11-16 16:46 编辑 labview通过.net调用halcon算子,测量一个圆的角度
    发表于 11-16 09:39

    一个Halcon中Rectange2(带角度的矩形)在NI Vision中实现的算法

    *附件:Labview_Rectange2 文件夹.zip效果如图所示,Halcon中有一个常用的smallest_rectange2这个算子,可以生成所选区域的最小外接矩形,且这个矩形是带有角度
    发表于 03-29 17:09

    Halcon9.0编程技术详解

    Halcon9.0编程技术详解Halcon9.0编程技术详解
    发表于 12-22 15:20 0次下载

    如何获取矩形测量矩形位置参数?

    首先给出一个问题:如下边一个图片中,如何获取矩形测量,也就是说,需要更准确的矩形位置参数?
    的头像 发表于 03-20 10:27 709次阅读

    Halcon中的测量工具之Metrology介绍

    对于使用Halcon的小伙伴们来说,在菜单栏上的“助手”一栏中可以找到一些可以快捷使用的工具。
    的头像 发表于 03-24 16:35 6857次阅读

    Halcon测量基础知识入门

    1D测量主要就是拉个框获取这个框中定义的高频范围的临界点,所测量的范围比较有限,基于两点之间的距离。
    的头像 发表于 03-24 16:38 865次阅读

    史上最全VisionPro和Halcon 的详细对比

    MVTec MERLIC & HALCON – Mvtec公司宣布了一个基于Halcon库的新的视觉产品-MERLIC,Merlic增加了极其简单易用的机器视觉应用并且能够让一个有经验的Halcon开发者把自己的
    的头像 发表于 06-26 11:40 2030次阅读