halcon算子翻译——measure_pairs

匆匆过客 提交于 2020-03-08 06:50:18

名称

measure_pairs - 提取垂直于矩形或环形弧的直边对。

用法

measure_pairs(Image : : MeasureHandle, Sigma, Threshold, Transition, Select : RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)

描述

   measure_pairs用于提取垂直于矩形或环形弧长轴的直边对。

  提取算法与measure_pos相同。 此外,边被分组为:如果Transition ='positive',则在RowEdgeFirst和ColumnEdgeFirst中将返回沿矩形长轴方向的暗到亮过渡的边缘点。 在这种情况下,在RowEdgeSecond和ColumnEdgeSecond中将返回具有明到暗过渡的相应边。 如果Transition = 'negative',则行为完全相反。 如果Transition =“all”,则RowEdgeFirst和ColumnEdgeFirst定义为首先检测到的边。 即取决于测量对象的定位,返回具有亮暗亮的边缘对或具有暗亮暗的边缘对。 这适合于测量具有相对于背景的不同亮度的物体。

  如果找到多个具有相同过渡的连续边,则将第一个边用作边缘对的元素。 此行为可能会导致在应用程序中阈值Threshold 不能选择足够高,以抑制相同过渡的连续边缘。 对于这些应用,可以使用第二种找边缘对模式,仅选择一系列连续的上升沿和下降沿的相应最强边沿。 通过将“_strongest”附加到用于转换的上述任何模式(例如,“negative_strongest”)来选择该模式。 最后,可以选择返回哪个边缘对。 如果Select 设置为'all',则返回所有边缘对。 如果设置为'first',则只返回第一个提取的边对,而设置为'last',则只返回最后一个边缘对。

  提取的边作为位于矩形长轴上的单个点返回。 AmplitudeFirst和AmplitudeSecond中返回相应的边缘振幅。 另外,每个边缘对之间的距离在IntraDistance中返回,连续两个边缘对之间的距离在InterDistance中返回。 这里,IntraDistance [i]对应于EdgeFirst [i]和EdgeSecond [i]之间的距离,而InterDistance [i]对应于EdgeSecond [i]和EdgeFirst [i + 1]之间的距离,即,元组InterDistance包含边缘对数量-1个元素。

注意

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

  应该记住,为了效率的原因,measure_pairs会忽略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', 'all_strongest', 'negative', 'negative_strongest', 'positive', 'positive_strongest'
  Select (input_control) string → (string)
  要选择的边缘对
  Default value: 'all'
  List of values: 'all', 'first', 'last'


RowEdgeFirst (output_control)    point.y-array → (real)
  边缘对第一条边的中心的Row坐标。


ColumnEdgeFirst (output_control)    point.x-array → (real)

  边缘对第一条边的中心的Column坐标。


AmplitudeFirst (output_control)    real-array → (real)
  边缘对第一条边的边缘幅度(带符号)。


RowEdgeSecond (output_control)    point.y-array → (real)
  边缘对第二条边的中心的Row坐标。


ColumnEdgeSecond (output_control)    point.x-array → (real)
  边缘对第二条边的中心的Column坐标。


AmplitudeSecond (output_control)    real-array → (real)
  边缘对第二条边的边缘幅度(带符号)。


IntraDistance (output_control)    real-array → (real)
  边缘对内部之间的距离。


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

结果

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

Possible Predecessors

gen_measure_rectangle2

Possible Successors

close_measure

备选算子

edges_sub_pix, fuzzy_measure_pairs, fuzzy_measure_pairing

See also

measure_pos, fuzzy_measure_pos

模块

1D Metrology

HDevelop例程

world_coordinates_line_scan.hdev   使用相机校准,测量线扫描图像中卡尺的间距线之间的距离
two_camera_calibration.hdev      使用特殊的校准对象执行高精度拼接
pm_measure_board.hdev            定位电路板上的IC并测量引脚距离
measure_tft_cells.hdev           测量TFT LCD显示器的RGB单元的尺寸
measure_switch.hdev         确定开关的宽度和引脚之间的距离
measure_ring.hdev            用圆形measure对象确定齿轮的宽度
measure_pin.hdev             测量IC的引脚
measure_lcd_cells.hdev         测量分隔LCD显示器单元的框架的尺寸
measure_ic_leads.hdev          测量IC的引线
gen_measure_rectangle2.hdev        测量垂直于给定线的边缘
fuzzy_measure_switch.hdev         用一个模糊度量对象确定一个开关引脚的宽度和距离
fuse.hdev                    测量保险丝的厚度
correct_measure_direction.hdev       自动更正测量对象的方向
camera_calibration_multi_image.hdev   校准相机并测量卡尺上的位置
camera_calibration_external.hdev    使用相机校准来测量卡尺上的位置
calibration_aimdpm_1_2006.hdev    在检查2D数据代码的打印质量之前应用反射率校准
calibrate_cameras_telecentric_tilt.hdev 使用远心倾斜镜头(Scheimpflug)校准
align_measurements_multithreading.hdev 使用多线程并行检查剃刀刀片
align_measurements.hdev            使用基于形状的匹配来检查单个剃刀刀片,以为测量工具调整ROI

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!