名称
gen_measure_arc - 准备提取垂直于圆弧的直边。
用法
gen_measure_arc( : : CenterRow, CenterCol, Radius, AngleStart, AngleExtent, AnnulusRadius, Width, Height, Interpolation : MeasureHandle)
描述
gen_measure_arc准备提取垂直于环形弧的直边。 这里,环形弧表示具有相关宽度的圆弧。 圆弧的中心在CenterRow和CenterCol,其半径为Radius,起始角度为AngleStart,AngleExtent是相对于起始角度的角度范围。 如果AngleExtent> 0,则产生逆时针方向的弧,否则产生顺时针方向的弧。 环形弧的半径,即宽度的一半由AnnulusRadius确定。
在算子measure_pos的文档中描述了边缘提取算法。 如上所述,可以使用不同类型的插值来计算一维灰度值分布。 对于Interpolation='bilinear',测量中的灰度值是从最接近的像素的灰度值,即通过constant插值获得的。 对于Interpolation = 'bilinear',使用双线性插值,而对于Interpolation = 'bicubic',则使用双三次插值。
要以最佳速度执行实际测量,所有可用于多次测量的计算都已在算子gen_measure_arc中执行。 为此,在MeasureHandle中构造并返回一个优化的数据结构,即所谓的measure对象。 要在其中执行测量的图像的大小必须在参数Width和Height中指定。
系统参数“int_zooming”(见set_system)会影响用于构建measure对象的计算的准确性和速度。 如果'int_zooming'设置为'true',则内部计算使用定点算术执行,导致执行时间缩短。 但是,这种模式下的几何精度略低。 如果将“int_zooming”设置为“false”,则使用浮点运算执行内部计算,从而导致最大的几何精度,但也会显著增加执行时间。
注意
请注意,使用双线性或双三次插值时,不仅矩形的测量,而且矩形周围的边缘必须在图像中。 对于双线性插值而言,边缘的宽度(在所有四个方向上)必须至少有一个像素,对于双三次插值必须至少有两个像素。 对于不满足此条件的投影线,不计算灰度值。 因此,在这些位置上不能提取边缘。
并行
● 多线程类型:可重入(与非独占算子并行运行)。
● 多线程范围:全局(可以从任何线程调用)。
● 不并行处理。
该算子返回一个句柄。 请注意,即使将此句柄用作输入参数,该句柄类型的实例的状态也可能被特定的算子所改变。
参数
CenterRow (input_control) point.y → (real / integer)
圆弧中心的Row坐标。
Default value: 100.0
Suggested values: 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0
Typical range of values: 0.0 ≤ CenterRow ≤ 511.0 (lin)
Minimum increment: 1.0
Recommended increment: 10.0
CenterCol (input_control) point.x → (real / integer)
圆弧中心的Column坐标。
Default value: 100.0
Suggested values: 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0
Typical range of values: 0.0 ≤ CenterCol ≤ 511.0 (lin)
Minimum increment: 1.0
Recommended increment: 10.0
Radius (input_control) number → (real / integer)
弧的半径。
Default value: 50.0
Suggested values: 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0
Typical range of values: 0.0 ≤ Radius ≤ 511.0 (lin)
Minimum increment: 1.0
Recommended increment: 10.0
AngleStart (input_control) angle.rad → (real / integer)
圆弧的开始角度,按弧度表示。
Default value: 0.0
Suggested values: -3.14159, -2.35619, -1.57080, -0.78540, 0.0, 0.78540, 1.57080, 2.35619, 3.14159
Typical range of values: -3.14159 ≤ AngleStart ≤ 3.14159 (lin)
Minimum increment: 0.03142
Recommended increment: 0.31416
AngleExtent (input_control) angle.rad → (real / integer)
圆弧的角度范围,以弧度表示。
Default value: 6.28318
Suggested values: -6.28318, -5.49779, -4.71239, -3.92699, -3.14159, -2.35619, -1.57080, -0.78540, 0.78540, 1.57080, 2.35619, 3.14159, 3.92699, 4.71239, 5.49779, 6.28318
Typical range of values: -6.28318 ≤ AngleExtent ≤ 6.28318 (lin)
Minimum increment: 0.03142
Recommended increment: 0.31416
Restriction: AngleExtent != 0.0
AnnulusRadius (input_control) number → (real / integer)
环的半径(半宽)。
Default value: 10.0
Suggested values: 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0
Typical range of values: 0.0 ≤ AnnulusRadius ≤ 511.0 (lin)
Minimum increment: 1.0
Recommended increment: 10.0
Restriction: AnnulusRadius <= Radius
Width (input_control) extent.x → (integer)
要处理的图像的宽度。
Default value: 512
Suggested values: 128, 160, 192, 256, 320, 384, 512, 640, 768
Typical range of values: 0 ≤ Width ≤ 1024 (lin)
Minimum increment: 1
Recommended increment: 16
Height (input_control) extent.y → (integer)
要处理的图像的高度。
Default value: 512
Suggested values: 120, 128, 144, 240, 256, 288, 480, 512, 576
Typical range of values: 0 ≤ Height ≤ 1024 (lin)
Minimum increment: 1
Recommended increment: 16
Interpolation (input_control) string → (string)
要使用的插值类型。
Default value: 'nearest_neighbor'
List of values: 'bicubic', 'bilinear', 'nearest_neighbor'
MeasureHandle (output_control) measure_id → (integer)
Measure对象的句柄
结果
如果参数值正确,则运算符gen_measure_arc返回2(H_MSG_TRUE)。 否则会引发异常。
Possible Predecessors
draw_circle
Possible Successors
measure_pos, measure_pairs, fuzzy_measure_pos, fuzzy_measure_pairs, fuzzy_measure_pairing
备选算子
edges_sub_pix
See also
gen_measure_rectangle2
模块
1D Metrology
HDevelop例程
measure_ring.hdev 用圆形measure对象确定齿轮的宽度
measure_arc.hdev 测量沿着圆弧的金属部件的宽度
gen_measure_arc.hdev 测量垂直于给定弧的边