【halcon】Metrology工具系列之 get_metrology_object_model_contour
get_metrology_object_model_contour (Operator)
Name
get_metrology_object_model_contour
— 在图像坐标中查询测量对象的模型轮廓。
Signature
get_metrology_object_model_contour( : Contour : MetrologyHandle, Index, Resolution : )
Description
get_metrology_object_model_contour
返回所选测量对象在图像坐标中的轮廓。
测量模型由测量句柄 MetrologyHandle
定义。参数 Index
指定查询轮廓的测量对象。对于索引设置为 'all'
,返回所有测量对象的轮廓。
还记得上一篇文章中算子 add_metrology_object_line_measure, 它的作用是在测量模式上添加一个直线测量对象!这个参数最后一个参数就是index,这个index就是模式中的测量对象的编号!
返回值:操作符add_metrology_object_line_measure在参数Index中返回添加的测量对象的索引。
每个轮廓的形状和姿态由添加对象时设置的参数决定,例如使用 add_metrology_object_generic
、add_metrology_object_circle_measure
等。如果使用 set_metrology_model_param
设置了测量模型的不同参考坐标系,或使用 align_metrology_model
执行了测量模型的对齐,则这些值会影响测量对象的当前姿态,从而影响返回的轮廓的姿态。(这些后续再讲~~~~)
返回的轮廓的分辨率通过分辨率控制,分辨率包含相邻轮廓点之间的欧几里得距离(以像素为单位)。如果输入值低于最小可能值(1.192e-7),则分辨率在内部设置为最小的有效值。
Execution Information
- 多线程类型:可重入(与非独占操作员并行运行)。
- 多线程范围:全局(可以从任何线程调用)。
- 不进行并行处理。
Parameters(参数介绍)
-
Contour (output_object)
xld_cont(-array) → object
模型轮廓。 -
MetrologyHandle (input_control)
metrology_model → (handle)
测量模型的句柄。 -
Index (input_control)
integer(-array) → (integer / string)
测量对象的索引。
默认值:0
建议值:‘all’, 0, 1, 2 -
Resolution (input_control)
real → (real)
相邻轮廓点之间的距离。
默认值:1.5
限制:分辨率 >= 1.192e-7
Result
如果参数有效,操作员 get_metrology_object_model_contour
返回值 2(H_MSG_TRUE)。如有必要,会抛出异常。
Possible Predecessors
add_metrology_object_generic
, add_metrology_object_circle_measure
, add_metrology_object_ellipse_measure
, add_metrology_object_rectangle2_measure
, add_metrology_object_line_measure
Possible Successors
apply_metrology_model
See also
set_metrology_model_param
, get_metrology_object_measures
, align_metrology_model
例子讲解
* 清空屏幕,显式控制图像显示
dev_close_window ()
dev_update_off ()
read_image (Image, '形状模板图.png')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)* 创建测量模型
create_metrology_model (MetrologyHandle)
Row1 := 78
Column1 := 32
Row2 := 86
Column2 := 280* 添加找直线工具,给定参数,显示过程卡尺的轮廓
add_metrology_object_line_measure (MetrologyHandle, Row1, Column1, Row2, Column2, 20, 5, 1, 30, [], [], Index)
get_metrology_object_model_contour (Contour, MetrologyHandle, Index, 1.5)
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row, Column)
get_metrology_object_model_contour 得到轮廓就是众多方块中间的那根线!
而这些方块轮廓是通过get_metrology_object_measures
得到。下一篇里面讲!
我们可以清晰的看到,方块的排列是根据这跟红线进行排布的,红线就是他们的中心!
回顾《上一篇》文章:
add_metrology_object_line_measure。这个算子的作用是在一个测量模型(metrology model)中添加一个线类型的测量对象(metrology object),并准备相应的矩形测量区域(rectangular measure regions)。以下是对这算子的详细解释:
测量区域的尺寸:测量区域垂直于线和切线方向的半边长分别由MeasureLength1和MeasureLength2设置。测量区域的中心位于线上。
通用参数调整:可以通过GenParamName和GenParamValue调整一些通用参数。特别是,所有在set_metrology_object_param操作符中可用的通用参数都可以设置。但请注意,对于许多应用来说,默认值已经足够,不需要调整。