• halcon算子翻译——measure_pos


    名称

    measure_pos - 提取垂直于矩形或环形弧的直线边缘。

    用法

    measure_pos(Image : : MeasureHandle, Sigma, Threshold, Transition, Select : RowEdge, ColumnEdge, Amplitude, Distance)

    描述

      measure_pos提取垂直于矩形或环形弧长轴的直边。

      该算法通过计算垂直于矩形或环形弧的长轴的“切片”中的灰度值的均值以获得一维边缘轮廓。采样是在矩形中心的整数行和列位置(在矩形的坐标系中)的图像Image中的亚像素位置完成的。由于这含有可以在多次测量中重复使用的一些计算,所以使用算子gen_measure_rectangle2或gen_measure_arc来执行一次这些计算,从而显著提高了measure_pos的速度。由于在灰度值的亚像素计算中存在精度和速度之间的折衷,并且因此在所提取的边缘位置的准确度中,可以在gen_measure_rectangle2中选择不同的插值方案。 (插值仅影响与图像轴不对齐的矩形。)使用gen_measure_rectangle2生成的measure对象在MeasureHandle中传递。

      在计算出一维边缘轮廓之后,通过将轮廓与标准偏差Sigma的高斯平滑核的导数进行卷积来计算亚像素边缘位置。可以用构成振幅阈值的参数Threshold(即边缘的一阶导数的绝对值)来选择显著边缘。请注意,幅度值按Sigma*sqrt(2*pi)比例缩放。另外,可以仅选择正边缘,即在矩形或弧的长轴方向上构成暗到亮的过渡的边缘(Transition = 'positive'),或者只有负边缘,即,亮到暗过渡(Transition ='negative')或两种类型的边缘(Transition ='all')。最后,可以选择返回哪个边缘点。如果Select设置为'all',则返回所有边缘点。如果设置为'first',则只返回第一个提取的边缘点,而设置为'last',则只返回最后一个。

      提取的边缘将把位于矩形或圆弧长轴上的单个点(RowEdge,ColumnEdge)作为提取的边缘返回。 Amplitude返回相应的边缘振幅。 另外,连续的边缘点之间的距离以Distance返回。 这里, Distance[i]对应于Edge[i]和Edge[i+1]之间的距离,即,元组Distance 含有比(RowEdge 和ColumnEdge)的长度-1个元素

    注意

      只有边缘是直的并垂直于矩形或弧的长轴,measure_pos返回的结果才有意义。 因此它不应该用于从曲面对象中提取边缘。 此外用户应确保矩形或弧线尽可能接近垂直于图像中的边缘。 此外,西格玛不能大于约0.5 * Length1(对于Lenth1请参见gen_measure_rectangle2)。

      应该记住,为了效率的原因,measure_pos会忽略Image的ROI域。 如果图像中的特定区域应该从measurement中排除,则应该生成具有适当修改的参数的新measure对象。

    并行

    ●  多线程类型:可重入(与非独占算子并行运行)。

    ●  多线程范围:全局(可以从任何线程调用)。

    ●  不并行处理。

    参数

    Image (input_object) 单通道图像→ object (byte / uint2 / real)
      输入图像。


    MeasureHandle (input_control) measure_id → (integer)
      Measure对象句柄。


    Sigma (input_control) number → (real)
      高斯模糊的Sigma值
      Default value: 1.0
      Suggested values: 0.4, 0.6, 0.8, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0
      Typical range of values: 0.4 ≤ Sigma ≤ 100 (lin)
      Minimum increment: 0.01
      Recommended increment: 0.1
      Restriction: Sigma >= 0.4


    Threshold (input_control) number → (real)
      最小边缘幅度。
      Default value: 30.0
      Suggested values: 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0
      Typical range of values: 1 ≤ Threshold ≤ 255 (lin)
      Minimum increment: 0.5
      Recommended increment: 2


    Transition (input_control) string → (string)
      亮到暗或者暗到亮的边缘。
      Default value: 'all'
      List of values: 'all', 'negative', 'positive'


    Select (input_control) string → (string)
      要选择返回的点。
      Default value: 'all'
      List of values: 'all', 'first', 'last'


    RowEdge (output_control) point.y-array → (real)
      边缘中心的Row坐标。


    ColumnEdge (output_control) point.x-array → (real)
      边缘中心的Column坐标。


    Amplitude (output_control) real-array → (real)
      边缘的边缘幅度(带符号)。


    Distance (output_control) real-array → (real)
      连续边之间的距离。

    结果

    如果参数值正确,则算子measure_pos返回值2(H_MSG_TRUE)。 否则会引发异常。

    Possible Predecessors

    gen_measure_rectangle2

    Possible Successors

    close_measure

    备选算子

    edges_sub_pix, fuzzy_measure_pos

    See also

    measure_pairs, fuzzy_measure_pairs, fuzzy_measure_pairing

    模块

    1D Metrology

    HDevelop例程

    measure_pin.hdev             测量IC的引脚

     measure_ic_leads.hdev           测量IC的引线

    measure_fill_level.hdev       检查***的液位

    measure_arc.hdev               测量金属部件沿着圆弧的的宽度

    gen_measure_rectangle2.hdev        测量垂直于给定线的边缘
    gen_measure_arc.hdev            测量垂直于给定弧的边

    create_drawing_object_rectangle2.hdev 使用绘图对象在矩形内交互测量直边
    3d_coordinates.hdev          测量世界坐标中的倾斜物体

  • 相关阅读:
    tp5的 LayUI分页样式实现
    BSBuDeJie_05
    WCF 程序入门
    iOS Xcode 调试技巧
    Visual Studio 2015 如何将全英界面转成中文
    BSBuDeJie_04
    BSBuDeJie_03
    BSBuDeJie_02
    BSBuDeJie_01
    iOS 一些琐碎的知识点
  • 原文地址:https://www.cnblogs.com/xhiong/p/measure_pos.html
Copyright © 2020-2023  润新知