This chapter contains operators for 2D metrology.
With 2D metrology, you can measure the dimensions of objects that can be represented by specific geometric primitives. The geometric shapes that can be measured comprise circles, ellipses, rectangles, and lines. You need approximate values for the positions, orientations, and dimensions of the objects to measure. Then, the real edge positions of the objects in the image are located near the boundaries of the approximate objects. With these edge positions, the parameters of the geometric shapes are optimized to better fit to the image data and are returned as measurement result.
The approximate values for the shape parameters of an object as well as some parameters that control the measurement are stored in a data structure that is called metrology object. The edges of the object in the image are located within so-called measure regions. These are rectangular regions that are arranged perpendicular to the boundaries of the metrology objects. Parameters that adjust the dimension and distribution of the measure regions are specified together with the approximate shape parameters for each metrology object. When the measurement is applied, the edge positions inside all measure regions are determined and fitted to geometric shapes using a RANSAC algorithm. All metrology objects, all further information that is necessary for the measurement, and the measurement results are stored in a data structure that is called metrology model.
( 1) | ( 2) |
In the following, the steps that are required to use 2D metrology are described briefly.
First, a metrology model must be created using
The metrology model is used as a container for one or more metrology objects. For an efficient measurement, after creating the metrology model, the image size of the image in which the measurements will be performed should be specified using
Then, metrology objects are added to the metrology model. Each metrology object consists of the approximate shape parameters for the corresponding object in the image and of the parameters that control the measurement. The parameters that control the measurement comprise, e.g., parameters that specify the dimension and distribution of the measure regions. Furthermore, several generic parameters can be adjusted for each metrology object. The metrology objects are specified with
for circles,
add_metrology_object_circle_measure
for ellipses,
add_metrology_object_ellipse_measure
for rectangles, and
add_metrology_object_rectangle2_measure
for lines.
add_metrology_object_line_measure
allows to create metrology
objects of different shapes (e.g., ellipse, circle,
etc.) using one operator.
add_metrology_object_generic
To visually inspect the defined metrology objects, you can access
their XLD contours with the operator
. To visually inspect the
created measure regions, you can access their XLD contours with the
operator get_metrology_object_model_contour
.
get_metrology_object_measures
If a camera calibration has been performed, the camera parameters and the pose of the measurement plane can be set with
Then, the result of the measurements returned by
will be in world coordinates. The
reference coordinate system in which the metrology objects are
defined can also be changed with get_metrology_object_result
.
set_metrology_model_param
Many parameters can be set when adding the metrology objects to the metrology model. Some of them can also be modified afterwards using the operator
To translate and rotate the metrology model before the next measurement is performed, you can use the operator
An alignment is temporary and is replaced by the next alignment. The metrology model itself is not changed. Note that typically the alignment parameters are obtained using shape-based matching.
The actual measurement in the image is performed with
The operator locates the edges within the measure regions and fits
the specified geometric shape to the edge positions using a RANSAC
algorithm. The edges are located internally using the operator
or measure_pos
(see also chapter
1D Measuring). The latter uses fuzzy
methods and is used only if at least one fuzzy function was set via
fuzzy_measure_pos
before applying the
measurement. If more than one instance of the returned object
shape is needed (compare image above), the generic parameter
set_metrology_object_fuzzy_param
'num_instances'
must be set to the number of instances
that should be returned. The parameter can be set when adding the
individual metrology objects or afterwards with the operator
.
set_metrology_object_param
After the measurement, the results can be accessed. The parameters of the adapted geometric shapes of the objects are queried with the operator
Querying only the edges used for the returned result and their
amplitudes is also done using
.
get_metrology_object_result
The row and column coordinates of all located edges can be accessed with
To visualize the adapted geometric shapes, you can access their XLD contours with
In addition to the operators mentioned above, you can copy the metrology
handle with
, write the metrology model to file
with copy_metrology_model
, read a model from file again using
write_metrology_model
, and serialize or deserialize a metrology model
using read_metrology_model
or
serialize_metrology_model
.
deserialize_metrology_model
Furthermore, you can query various information from the metrology model. For
example, you can query the indices of the metrology objects with
, query parameters that are valid for the
entire metrology model with get_metrology_object_indices
, query a fuzzy
parameter of a metrology model with get_metrology_model_param
,
query the number of instances of the metrology objects of a metrology model
with get_metrology_object_fuzzy_param
, and query the current
configuration of the metrology model with
get_metrology_object_num_instances
.
get_metrology_object_param
Additionally, you can reset all parameters of a metrology model using
or reset only all fuzzy parameters and fuzzy
functions of a metrology model using
reset_metrology_object_param
.
reset_metrology_object_fuzzy_param
In the following, the most important terms that are used in the context of 2D Metrology are described.
Data structure that contains all metrology objects, all information needed for the measurement, and the measurement results.
Data structure for the object to be measured with 2D metrology. The metrology object is represented by a specific geometric shape for which the shape parameters are approximately known. Additionally, it contains parameters that control the measurement, e.g., parameters that specify the dimension and distribution of the measure regions.
Rectangular regions that are arranged perpendicular to the boundaries of the approximate objects. Within these regions the edges that are used to get the exact shape parameters of the metrology objects are extracted.
For each metrology object, different instances of the object can be returned by the measurement, e.g., if parallel structures of the same shape exist near to the boundaries of the approximated geometric shape (see image above). The sequence of the returned instances is arbitrary, i.e., it is no measure for the quality of the fitting.
See also the “Solution Guide on 2D Measuring”
for further details
about 2D metrology.
add_metrology_object_circle_measure
add_metrology_object_ellipse_measure
add_metrology_object_generic
add_metrology_object_line_measure
add_metrology_object_rectangle2_measure
align_metrology_model
apply_metrology_model
clear_metrology_model
clear_metrology_object
copy_metrology_model
create_metrology_model
deserialize_metrology_model
get_metrology_model_param
get_metrology_object_fuzzy_param
get_metrology_object_indices
get_metrology_object_measures
get_metrology_object_model_contour
get_metrology_object_num_instances
get_metrology_object_param
get_metrology_object_result
get_metrology_object_result_contour
read_metrology_model
reset_metrology_object_fuzzy_param
reset_metrology_object_param
serialize_metrology_model
set_metrology_model_image_size
set_metrology_model_param
set_metrology_object_fuzzy_param
set_metrology_object_param
write_metrology_model