gen_measure_rectangle2T_gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2 (算子)
名称
gen_measure_rectangle2T_gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2 — 准备提取垂直于矩形的直边。
签名
void GenMeasureRectangle2(const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2, const HTuple& Width, const HTuple& Height, const HTuple& Interpolation, HTuple* MeasureHandle)
void HMeasure::HMeasure(const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2, Hlong Width, Hlong Height, const HString& Interpolation)
void HMeasure::HMeasure(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const HString& Interpolation)
void HMeasure::HMeasure(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const char* Interpolation)
void HMeasure::HMeasure(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const wchar_t* Interpolation)
(
Windows only)
void HMeasure::GenMeasureRectangle2(const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2, Hlong Width, Hlong Height, const HString& Interpolation)
void HMeasure::GenMeasureRectangle2(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const HString& Interpolation)
void HMeasure::GenMeasureRectangle2(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const char* Interpolation)
void HMeasure::GenMeasureRectangle2(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const wchar_t* Interpolation)
(
Windows only)
static void HOperatorSet.GenMeasureRectangle2(HTuple row, HTuple column, HTuple phi, HTuple length1, HTuple length2, HTuple width, HTuple height, HTuple interpolation, out HTuple measureHandle)
public HMeasure(HTuple row, HTuple column, HTuple phi, HTuple length1, HTuple length2, int width, int height, string interpolation)
public HMeasure(double row, double column, double phi, double length1, double length2, int width, int height, string interpolation)
void HMeasure.GenMeasureRectangle2(HTuple row, HTuple column, HTuple phi, HTuple length1, HTuple length2, int width, int height, string interpolation)
void HMeasure.GenMeasureRectangle2(double row, double column, double phi, double length1, double length2, int width, int height, string interpolation)
def gen_measure_rectangle2(row: Union[int, float], column: Union[int, float], phi: Union[int, float], length_1: Union[int, float], length_2: Union[int, float], width: int, height: int, interpolation: str) -> HHandle
描述
gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2 prepares the extraction of
straight edges which lie perpendicular to the major
axis of a rectangle. The center of the rectangle is passed in the
parameters RowRowRowRowrowrow and ColumnColumnColumnColumncolumncolumn, the direction of the
major axis of the rectangle in PhiPhiPhiPhiphiphi, and the length of the
two axes, i.e., half the diameter of the rectangle, in
Length1Length1Length1Length1length1length_1 and Length2Length2Length2Length2length2length_2。
For an explanation of the concept of 1D measuring see the introduction of
chapter 一维测量。
The edge extraction algorithm is described in the documentation of
the operator measure_posmeasure_posMeasurePosMeasurePosMeasurePosmeasure_pos。As discussed there, different
types of interpolation can be used for the calculation of the
one-dimensional gray value profile. For InterpolationInterpolationInterpolationInterpolationinterpolationinterpolation =
'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor", the gray values in the measurement are
obtained from the gray values of the closest pixel, i.e., by
constant interpolation. For InterpolationInterpolationInterpolationInterpolationinterpolationinterpolation =
'bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear", bilinear interpolation is used, while for
InterpolationInterpolationInterpolationInterpolationinterpolationinterpolation = 'bicubic'"bicubic""bicubic""bicubic""bicubic""bicubic", bicubic interpolation
is used.
To perform the actual measurement at optimal speed, all computations that can
be used for multiple measurements are already performed in the operator
gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2. For this, an optimized data structure, a
so-called measure object, is constructed and returned in
MeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandlemeasure_handle. The size of the images in which measurements will be
performed must be specified in the parameters WidthWidthWidthWidthwidthwidth and
HeightHeightHeightHeightheightheight。
The system parameter 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming""int_zooming" (see set_systemset_systemSetSystemSetSystemSetSystemset_system)
affects the accuracy and speed of the calculations used to construct
the measure object. If 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming""int_zooming" is set to
'true'"true""true""true""true""true", the internal calculations are performed using fixed
point arithmetic, leading to much shorter execution times. However,
the geometric accuracy is slightly lower in this mode. If
'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming""int_zooming" is set to 'false'"false""false""false""false""false", the internal
calculations are performed using floating point arithmetic, leading
to the maximum geometric accuracy, but also to significantly
increased execution times.
注意
Note that when using bilinear or bicubic interpolation, not only the
measurement rectangle but additionally the margin around the
rectangle must fit into the image. The width of the margin (in all
four directions) must be at least one pixel for bilinear
interpolation and two pixels for bicubic interpolation. For
projection lines that do not fulfill this condition, no gray value
is computed. Thus, no edge can be extracted at these positions.
Please also note that the center coordinates of the rectangle are rounded
internally, so that the center lies on the pixel grid.
This is done to ensure consistency.
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子返回一个句柄。请注意,即使该句柄被用作特定算子的输入参数,这些算子仍可能改变此句柄类型的实例状态。
参数
RowRowRowRowrowrow (输入控制) rectangle2.center.y → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the center of the rectangle.
默认值:
300.0
建议值:
10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0
值范围:
0.0
≤
Row
Row
Row
Row
row
row
≤
511.0 (lin)
最小增量:
1.0
建议增量:
10.0
ColumnColumnColumnColumncolumncolumn (输入控制) rectangle2.center.x → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the center of the rectangle.
默认值:
200.0
建议值:
10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0
值范围:
0.0
≤
Column
Column
Column
Column
column
column
≤
511.0 (lin)
最小增量:
1.0
建议增量:
10.0
PhiPhiPhiPhiphiphi (输入控制) rectangle2.angle.rad → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Angle of longitudinal axis of the rectangle to
horizontal (radians).
默认值:
0.0
建议值:
-1.178097, -0.785398, -0.392699, 0.0, 0.392699, 0.785398, 1.178097
值范围:
Phi
Phi
Phi
Phi
phi
phi
(lin)
最小增量:
0.001
建议增量:
0.1
Length1Length1Length1Length1length1length_1 (输入控制) rectangle2.hwidth → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Half width of the rectangle.
默认值:
100.0
建议值:
3.0, 5.0, 10.0, 15.0, 20.0, 50.0, 100.0, 200.0, 300.0, 500.0
值范围:
1.0
≤
Length1
Length1
Length1
Length1
length1
length_1
(lin)
最小增量:
1.0
建议增量:
10.0
Length2Length2Length2Length2length2length_2 (输入控制) rectangle2.hheight → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Half height of the rectangle.
默认值:
20.0
建议值:
1.0, 2.0, 3.0, 5.0, 10.0, 15.0, 20.0, 50.0, 100.0, 200.0
值范围:
0.0
≤
Length2
Length2
Length2
Length2
length2
length_2
(lin)
最小增量:
1.0
建议增量:
10.0
WidthWidthWidthWidthwidthwidth (输入控制) extent.x → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Width of the image to be processed subsequently.
默认值:
512
建议值:
128, 160, 192, 256, 320, 384, 512, 640, 768
值范围:
0
≤
Width
Width
Width
Width
width
width
(lin)
最小增量:
1
建议增量:
16
HeightHeightHeightHeightheightheight (输入控制) extent.y → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Height of the image to be processed subsequently.
默认值:
512
建议值:
120, 128, 144, 240, 256, 288, 480, 512, 576
值范围:
0
≤
Height
Height
Height
Height
height
height
(lin)
最小增量:
1
建议增量:
16
InterpolationInterpolationInterpolationInterpolationinterpolationinterpolation (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Type of interpolation to be used.
默认值:
'nearest_neighbor'
"nearest_neighbor"
"nearest_neighbor"
"nearest_neighbor"
"nearest_neighbor"
"nearest_neighbor"
值列表:
'bicubic'"bicubic""bicubic""bicubic""bicubic""bicubic", 'bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor"
MeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandlemeasure_handle (输出控制) measure → HMeasure, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Measure object handle.
结果
如果参数值正确,算子 gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2 返回值 2 ( H_MSG_TRUE )。否则将抛出异常。
可能的前趋
draw_rectangle2draw_rectangle2DrawRectangle2DrawRectangle2DrawRectangle2draw_rectangle2
可能的后继
measure_posmeasure_posMeasurePosMeasurePosMeasurePosmeasure_pos,
measure_pairsmeasure_pairsMeasurePairsMeasurePairsMeasurePairsmeasure_pairs,
fuzzy_measure_posfuzzy_measure_posFuzzyMeasurePosFuzzyMeasurePosFuzzyMeasurePosfuzzy_measure_pos,
fuzzy_measure_pairsfuzzy_measure_pairsFuzzyMeasurePairsFuzzyMeasurePairsFuzzyMeasurePairsfuzzy_measure_pairs,
fuzzy_measure_pairingfuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing,
measure_threshmeasure_threshMeasureThreshMeasureThreshMeasureThreshmeasure_thresh
替代
edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPixedges_sub_pix
另见
gen_measure_arcgen_measure_arcGenMeasureArcGenMeasureArcGenMeasureArcgen_measure_arc
模块
一维计量