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_pix
、edges_sub_pix
、lines_color
、lines_facet
、lines_gauss
。 -
'response'
:'response'
包含边缘梯度的幅值(见下图)。 添加'response'
属性的算子如下:edges_color_sub_pix
、edges_sub_pix
、lines_color
、lines_facet
、lines_gauss
。 -
'width_right'
:线条右侧的线宽(当从起点到终点遍历轮廓时)由'width_right'
(单位:像素)描述(见下图)。 添加'width_right'
属性的算子如下:lines_color
、lines_gauss
。 -
'width_left'
:线条左侧的线宽(当从起点到终点遍历轮廓时)由'width_left'
(单位:像素)描述(见下图)。 添加'width_left'
属性的算子如下:lines_color
、lines_gauss
。
轮廓(红色)不同点属性的可视化。轮廓的起点用白色十字标记。(1) 向量(黄色),按照
'angle'
绘制(相对于行轴),表示轮廓每个点的法向量;(2) 沿轮廓的 'response'
属性的变化情况;(3) 计算得到的属性 'width_right'
(黄色)和 'width_left'
(绿色)的可视化。
-
'edge_direction'
:给出边缘的方向(不是 XLD 轮廓的方向),通过图像在行和列方向上的梯度计算得到。角度是相对于图像的列轴给出的。 添加'edge_direction'
(单位:弧度)属性的算子如下:edges_color_sub_pix
、edges_sub_pix
。为轮廓(红色)的每个点按
'edge_direction'
绘制的向量(黄色)。 -
'asymmetry'
:轮廓属性'asymmetry'
描述了边缘两侧的图像梯度。如果不对称部分,即梯度较弱的部分,在线条的右侧,则该属性为正;如果不对称部分在线条的左侧,则该属性为负(见下图)。 添加'asymmetry'
属性的算子如下:lines_gauss
。 -
'contrast'
:轮廓的对比度描述了线条的灰度值与局部背景灰度值之间的差异。如果提取的是亮线条,则该属性为正;如果是暗线条,则该属性为负(见下图)。 添加'contrast'
属性的算子如下:lines_gauss
。
沿图像结构的轮廓的属性 (1)
'asymmetry'
和 (2) 'contrast'
的变化情况(轮廓的起点用白色十字标记)。
-
'distance'
:对于一个轮廓的所有点,到参考轮廓的任意点或线段的最小距离(取决于计算时选择的模式)由属性'distance'
(单位:像素)给出。 添加'distance'
属性的算子如下:apply_distance_transform_xld
、distance_contours_xld
。
(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_gauss
、lines_facet
、edges_sub_pix
、distance_contours_xld
、apply_distance_transform_xld
相关算子
query_contour_attribs_xld
、get_contour_global_attrib_xld
、query_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_transform
和distance_contours_xld
的运行时间。 -
angio.hdev
:从血管造影图像中提取血管及其直径。