算子 get_contour_attrib_xld - 返回 XLD 轮廓的点属性值

算子 get_contour_attrib_xld

名称

get_contour_attrib_xld — 返回 XLD 轮廓的点属性值。

签名

get_contour_attrib_xld(Contour : : Name : Attrib)

描述

get_contour_attrib_xld 算子将 XLD 轮廓 Contour 中属性 Name 的值返回到 Attrib 中。轮廓点属性是为每个轮廓点定义的附加值,用于描述局部特征。可以使用 query_contour_attribs_xld 算子查询特定轮廓设置了哪些属性。

以下列表包含了关于不同轮廓点属性的信息,以及将这些属性添加到 XLD 轮廓的算子(特殊情况请参阅相应的算子参考文档):

  • 'angle':轮廓法向量的方向由 'angle'(单位:弧度)描述(见下图)。当从轮廓的起点到终点遍历轮廓时,法向量指向轮廓的右侧(角度是相对于图像的行轴按逆时针方向定义的)。 添加 'angle' 属性的算子如下:edges_color_sub_pixedges_sub_pixlines_colorlines_facetlines_gauss

  • 'response''response' 包含边缘梯度的幅值(见下图)。 添加 'response' 属性的算子如下:edges_color_sub_pixedges_sub_pixlines_colorlines_facetlines_gauss

  • 'width_right':线条右侧的线宽(当从起点到终点遍历轮廓时)由 'width_right'(单位:像素)描述(见下图)。 添加 'width_right' 属性的算子如下:lines_colorlines_gauss

  • 'width_left':线条左侧的线宽(当从起点到终点遍历轮廓时)由 'width_left'(单位:像素)描述(见下图)。 添加 'width_left' 属性的算子如下:lines_colorlines_gauss

image-20250306205328572 轮廓(红色)不同点属性的可视化。轮廓的起点用白色十字标记。(1) 向量(黄色),按照 'angle' 绘制(相对于行轴),表示轮廓每个点的法向量;(2) 沿轮廓的 'response' 属性的变化情况;(3) 计算得到的属性 'width_right'(黄色)和 'width_left'(绿色)的可视化。

  • 'edge_direction':给出边缘的方向(不是 XLD 轮廓的方向),通过图像在行和列方向上的梯度计算得到。角度是相对于图像的列轴给出的。 添加 'edge_direction'(单位:弧度)属性的算子如下:edges_color_sub_pixedges_sub_pix

    image-20250306205510196

    为轮廓(红色)的每个点按 'edge_direction' 绘制的向量(黄色)。

  • 'asymmetry':轮廓属性 'asymmetry' 描述了边缘两侧的图像梯度。如果不对称部分,即梯度较弱的部分,在线条的右侧,则该属性为正;如果不对称部分在线条的左侧,则该属性为负(见下图)。 添加 'asymmetry' 属性的算子如下:lines_gauss

  • 'contrast':轮廓的对比度描述了线条的灰度值与局部背景灰度值之间的差异。如果提取的是亮线条,则该属性为正;如果是暗线条,则该属性为负(见下图)。 添加 'contrast' 属性的算子如下:lines_gauss

image-20250306205618478 沿图像结构的轮廓的属性 (1) 'asymmetry' 和 (2) 'contrast' 的变化情况(轮廓的起点用白色十字标记)。

  • 'distance':对于一个轮廓的所有点,到参考轮廓的任意点或线段的最小距离(取决于计算时选择的模式)由属性 'distance'(单位:像素)给出。 添加 'distance' 属性的算子如下:apply_distance_transform_xlddistance_contours_xld

image-20250306205836252 (1) 轮廓(红色)到参考轮廓(绿色)的点的 'distance';(2) 到参考轮廓(绿色)的任意线段的 'distance'

有关全局轮廓属性的信息,请参阅 get_contour_global_attrib_xld 算子的参考文档。

参数
  • Contour(输入对象)

    • 类型:XLD 轮廓对象

    • 描述:待查询属性的输入轮廓。

  • Name(输入控制)

    • 类型:字符串

    • 默认值'angle'

    • 可选值:

      属性名 含义 生成该属性的算子
      'angle' 轮廓法线方向角度(弧度,相对于图像行轴,逆时针方向) edges_sub_pix, lines_gauss
      'response' 边缘梯度幅值(边缘强度) edges_sub_pix, lines_gauss
      'width_right' 轮廓右侧线宽(像素,沿轮廓起点到终点方向右侧) lines_gauss, lines_color
      'width_left' 轮廓左侧线宽(像素,沿轮廓起点到终点方向左侧) lines_gauss, lines_color
      'edge_direction' 边缘方向(弧度,相对于图像列轴,由图像梯度计算) edges_sub_pix
      'asymmetry' 边缘不对称性(正值表示弱梯度在右侧,负值在左侧) lines_gauss
      'contrast' 对比度(正值表示亮线,负值表示暗线) lines_gauss
      'distance' 到参考轮廓的最小距离(像素,需通过 distance_contours_xld 预先计算) distance_contours_xld, apply_distance_transform_xld
  • Attrib(输出控制)

    • 类型:实数数组

    • 描述:轮廓每个点对应的属性值,长度与轮廓点数相同。

可能的前置算子

lines_gausslines_facetedges_sub_pixdistance_contours_xldapply_distance_transform_xld

相关算子

query_contour_attribs_xldget_contour_global_attrib_xldquery_contour_global_attribs_xld

HDevelop 例程
  • measure_circuit_width_lines_gauss.hdev:测量印刷电路板(PCB)线路的宽度。

  • lines_gauss.hdev:提取线条及其宽度。

  • lines_color.hdev:使用颜色信息提取线条。

  • inspect_frame_width.hdev:通过计算两个 XLD 轮廓之间的逐点距离来检查手机相机边框的宽度。

  • apply_distance_transform_xld.hdev:比较 apply_distance_transformdistance_contours_xld 的运行时间。

  • angio.hdev:从血管造影图像中提取血管及其直径。

posted @ 2025-03-08 20:41  明理  阅读(315)  评论(0)    收藏  举报