create_bead_inspection_modelT_create_bead_inspection_modelCreateBeadInspectionModelCreateBeadInspectionModelcreate_bead_inspection_model创建胶珠检查模型(算子)

名称

create_bead_inspection_modelT_create_bead_inspection_modelCreateBeadInspectionModelCreateBeadInspectionModelcreate_bead_inspection_model — 创建模型以检查图像中的胶珠或粘合剂。

签名

create_bead_inspection_model(BeadContour : : TargetThickness, ThicknessTolerance, PositionTolerance, Polarity, GenParamName, GenParamValue : BeadInspectionModel)

Herror T_create_bead_inspection_model(const Hobject BeadContour, const Htuple TargetThickness, const Htuple ThicknessTolerance, const Htuple PositionTolerance, const Htuple Polarity, const Htuple GenParamName, const Htuple GenParamValue, Htuple* BeadInspectionModel)

void CreateBeadInspectionModel(const HObject& BeadContour, const HTuple& TargetThickness, const HTuple& ThicknessTolerance, const HTuple& PositionTolerance, const HTuple& Polarity, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* BeadInspectionModel)

void HBeadInspectionModel::HBeadInspectionModel(const HXLD& BeadContour, const HTuple& TargetThickness, const HTuple& ThicknessTolerance, const HTuple& PositionTolerance, const HString& Polarity, const HTuple& GenParamName, const HTuple& GenParamValue)

void HBeadInspectionModel::HBeadInspectionModel(const HXLD& BeadContour, Hlong TargetThickness, Hlong ThicknessTolerance, Hlong PositionTolerance, const HString& Polarity, const HString& GenParamName, Hlong GenParamValue)

void HBeadInspectionModel::HBeadInspectionModel(const HXLD& BeadContour, Hlong TargetThickness, Hlong ThicknessTolerance, Hlong PositionTolerance, const char* Polarity, const char* GenParamName, Hlong GenParamValue)

void HBeadInspectionModel::HBeadInspectionModel(const HXLD& BeadContour, Hlong TargetThickness, Hlong ThicknessTolerance, Hlong PositionTolerance, const wchar_t* Polarity, const wchar_t* GenParamName, Hlong GenParamValue)   ( Windows only)

void HBeadInspectionModel::CreateBeadInspectionModel(const HXLD& BeadContour, const HTuple& TargetThickness, const HTuple& ThicknessTolerance, const HTuple& PositionTolerance, const HString& Polarity, const HTuple& GenParamName, const HTuple& GenParamValue)

void HBeadInspectionModel::CreateBeadInspectionModel(const HXLD& BeadContour, Hlong TargetThickness, Hlong ThicknessTolerance, Hlong PositionTolerance, const HString& Polarity, const HString& GenParamName, Hlong GenParamValue)

void HBeadInspectionModel::CreateBeadInspectionModel(const HXLD& BeadContour, Hlong TargetThickness, Hlong ThicknessTolerance, Hlong PositionTolerance, const char* Polarity, const char* GenParamName, Hlong GenParamValue)

void HBeadInspectionModel::CreateBeadInspectionModel(const HXLD& BeadContour, Hlong TargetThickness, Hlong ThicknessTolerance, Hlong PositionTolerance, const wchar_t* Polarity, const wchar_t* GenParamName, Hlong GenParamValue)   ( Windows only)

static void HOperatorSet.CreateBeadInspectionModel(HObject beadContour, HTuple targetThickness, HTuple thicknessTolerance, HTuple positionTolerance, HTuple polarity, HTuple genParamName, HTuple genParamValue, out HTuple beadInspectionModel)

public HBeadInspectionModel(HXLD beadContour, HTuple targetThickness, HTuple thicknessTolerance, HTuple positionTolerance, string polarity, HTuple genParamName, HTuple genParamValue)

public HBeadInspectionModel(HXLD beadContour, int targetThickness, int thicknessTolerance, int positionTolerance, string polarity, string genParamName, int genParamValue)

void HBeadInspectionModel.CreateBeadInspectionModel(HXLD beadContour, HTuple targetThickness, HTuple thicknessTolerance, HTuple positionTolerance, string polarity, HTuple genParamName, HTuple genParamValue)

void HBeadInspectionModel.CreateBeadInspectionModel(HXLD beadContour, int targetThickness, int thicknessTolerance, int positionTolerance, string polarity, string genParamName, int genParamValue)

def create_bead_inspection_model(bead_contour: HObject, target_thickness: Union[int, float], thickness_tolerance: Union[int, float], position_tolerance: Union[int, float], polarity: str, gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, float, str]]) -> HHandle

描述

create_bead_inspection_modelcreate_bead_inspection_modelCreateBeadInspectionModelCreateBeadInspectionModelCreateBeadInspectionModelcreate_bead_inspection_model 创建一个模型,用于检查图像中的胶珠或粘合剂。

胶珠检测的基本原理

胶珠检测算子可让用户定义参考轮廓,该轮廓标示特定产品上胶珠或粘合剂的位置与形状。随后可对这类产品的图像进行检测,以验证胶珠或粘合剂是否存在于轮廓定义的位置,且厚度是否符合要求。检测图像必须已与给定轮廓完成对齐。

算子 create_bead_inspection_modelcreate_bead_inspection_modelCreateBeadInspectionModelCreateBeadInspectionModelCreateBeadInspectionModelcreate_bead_inspection_model 将胶珠检测模型的句柄返回至 BeadInspectionModelBeadInspectionModelBeadInspectionModelBeadInspectionModelbeadInspectionModelbead_inspection_model,该句柄后续可用于执行与胶珠检测相关的其他操作。这些操作包括修改胶珠检测模型参数,以及根据模型定义对输入图像执行检测。

提供模型轮廓

为检测胶珠,需在 BeadContourBeadContourBeadContourBeadContourbeadContourbead_contour 中提供作为胶珠模型的轮廓。此类轮廓可通过 gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXldGenContourPolygonXldgen_contour_polygon_xldgen_contour_nurbs_xldgen_contour_nurbs_xldGenContourNurbsXldGenContourNurbsXldGenContourNurbsXldgen_contour_nurbs_xld 等算子生成。该轮廓必须与输入图像中的胶珠对齐。实现方法:用户可在图形窗口的参考图像上直接绘制 XLD(使用 draw_polygondraw_polygonDrawPolygonDrawPolygonDrawPolygondraw_polygondraw_nurbsdraw_nurbsDrawNurbsDrawNurbsDrawNurbsdraw_nurbs)。若需检测由多个部件组成的胶珠,则需创建多个模型。

必填参数

image/svg+xml TargetThickness ThicknessTolerance
( 1)
image/svg+xml PositionTolerance BeadInspectionModel
( 2)
胶珠检测模型的必填参数

为检测胶珠,必须设置以下参数:

- TargetThicknessTargetThicknessTargetThicknessTargetThicknesstargetThicknesstarget_thickness:定义最佳胶珠厚度(以像素为单位)。

- ThicknessToleranceThicknessToleranceThicknessToleranceThicknessTolerancethicknessTolerancethickness_tolerance:定义了对胶珠厚度的公差(以像素为单位)。当胶珠厚度处于以下范围内时视为合格:

[TargetThicknessTargetThicknessTargetThicknessTargetThicknesstargetThicknesstarget_thickness-ThicknessToleranceThicknessToleranceThicknessToleranceThicknessTolerancethicknessTolerancethickness_tolerance, TargetThicknessTargetThicknessTargetThicknessTargetThicknesstargetThicknesstarget_thickness+ThicknessToleranceThicknessToleranceThicknessToleranceThicknessTolerancethicknessTolerancethickness_tolerance]

- PositionTolerancePositionTolerancePositionTolerancePositionTolerancepositionToleranceposition_tolerance:定义胶珠位置的公差(单位为像素)。“胶珠位置bead position”指检测到的胶珠中心点。当胶珠中心与轮廓位置之间的距离小于 PositionTolerancePositionTolerancePositionTolerancePositionTolerancepositionToleranceposition_tolerance 时,该胶珠被视为合格。

- PolarityPolarityPolarityPolaritypolaritypolarity:定义待检测图像中胶珠的极性。若胶珠比其背景更亮则为 'light'"light""light""light""light""light",否则为 'dark'"dark""dark""dark""dark""dark"

边缘提取参数

胶珠检测依赖于边缘提取技术来识别胶珠的边缘。因此,正确初始化 measure_posmeasure_posMeasurePosMeasurePosMeasurePosmeasure_pos 参数有助于提升胶珠检测结果的准确性。

以下参数可用于设置 GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name

'sigma'"sigma""sigma""sigma""sigma""sigma"

设置高斯平滑核的标准差。该 'sigma'"sigma""sigma""sigma""sigma""sigma" 值取决于待检测图像的质量,即噪声量。

默认值: 2.0

'threshold'"threshold""threshold""threshold""threshold""threshold"

设置要提取的最小边缘幅度。将 'threshold'"threshold""threshold""threshold""threshold""threshold" 设为更高值有助于避免提取噪声边缘,从而选出显著边缘。 'threshold'"threshold""threshold""threshold""threshold""threshold" 不能小于 1

默认值: 30

测量助手可用于为这两个参数寻找合适的数值。

执行信息

此算子返回一个句柄。请注意,即使该句柄被用作特定算子的输入参数,这些算子仍可能改变此句柄类型的实例状态。

此算子修改后续输入参数的状态:

在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。

参数

BeadContourBeadContourBeadContourBeadContourbeadContourbead_contour (输入对象)  xld objectHXLDHObjectHXLDHobject

XLD 轮廓,用于指定预期胶珠的形状和位置。

TargetThicknessTargetThicknessTargetThicknessTargetThicknesstargetThicknesstarget_thickness (输入控制)  integer HTupleUnion[int, float]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

最佳胶珠厚度。

默认值: 50

值范围: 5 ≤ TargetThickness TargetThickness TargetThickness TargetThickness targetThickness target_thickness

ThicknessToleranceThicknessToleranceThicknessToleranceThicknessTolerancethicknessTolerancethickness_tolerance (输入控制)  integer HTupleUnion[int, float]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

珠粒厚度相对于 TargetThicknessTargetThicknessTargetThicknessTargetThicknesstargetThicknesstarget_thickness 的公差。

默认值: 15

值范围: 0 ≤ ThicknessTolerance ThicknessTolerance ThicknessTolerance ThicknessTolerance thicknessTolerance thickness_tolerance

PositionTolerancePositionTolerancePositionTolerancePositionTolerancepositionToleranceposition_tolerance (输入控制)  integer HTupleUnion[int, float]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

胶珠中心位置的公差。

默认值: 15

值范围: 0 ≤ PositionTolerance PositionTolerance PositionTolerance PositionTolerance positionTolerance position_tolerance

PolarityPolarityPolarityPolaritypolaritypolarity (输入控制)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

胶珠的极性。

默认值: 'light' "light" "light" "light" "light" "light"

值列表: 'dark'"dark""dark""dark""dark""dark", 'light'"light""light""light""light""light"

GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (输入控制)  attribute.name(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

可用于调整胶珠检测模型的泛型参数名称。

默认值: []

值列表: 'sigma'"sigma""sigma""sigma""sigma""sigma", 'threshold'"threshold""threshold""threshold""threshold""threshold"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (输入控制)  attribute.value(-array) HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (integer / real / string) (int / long / double / string) (Hlong / double / HString) (Hlong / double / char*)

可用于调整胶珠检测模型的泛型参数值。

默认值: []

建议值: 0.6, 1.0, 4.0, 5.0, 10.0, 50.0

BeadInspectionModelBeadInspectionModelBeadInspectionModelBeadInspectionModelbeadInspectionModelbead_inspection_model (输出控制,状态已更改)  bead_inspection_model HBeadInspectionModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

用于操作和访问胶珠检测模型的句柄。

示例(HDevelop)

* Read the image of the bead to be inspected.
read_image (Image, 'bead/adhesive_bead_01')
* Define the reference path of the adhesive beads.
gen_contour_nurbs_xld (ContourRef, \
                       [610.974,533.443,461.763,393.009,330.106,287.683, \
                        270.129,265.74,265.74,300.849,331.569,376.917, \
                        438.357,489.557,539.294], \
                       [418.581,424.27,439.441,473.574,526.67,574.078, \
                        644.241,708.715,765.604,818.7,866.107,915.411, \
                        966.611,998.848,993.159], \
                       'auto', \
                       [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15], \
                       3, 1, 5)
*
* Create the bead inspection model, identifying the bead's parameters
create_bead_inspection_model (ContourRef, 14, 7, 30, 'dark', [], [], \
                               BeadInspectionModel)
*
* Apply the bead inspection model to the image
apply_bead_inspection_model (Image, LeftContour, RightContour, \
                              ErrorSegment, BeadInspectionModel, \
                              ErrorType)

结果

算子 create_bead_inspection_modelcreate_bead_inspection_modelCreateBeadInspectionModelCreateBeadInspectionModelCreateBeadInspectionModelcreate_bead_inspection_model 在给定参数有效且在可接受范围内时返回值 2 (H_MSG_TRUE)。 否则,将抛出异常。

可能的前趋

gen_contour_nurbs_xldgen_contour_nurbs_xldGenContourNurbsXldGenContourNurbsXldGenContourNurbsXldgen_contour_nurbs_xld, gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXldGenContourPolygonXldgen_contour_polygon_xld

可能的后继

apply_bead_inspection_modelapply_bead_inspection_modelApplyBeadInspectionModelApplyBeadInspectionModelApplyBeadInspectionModelapply_bead_inspection_model, set_bead_inspection_paramset_bead_inspection_paramSetBeadInspectionParamSetBeadInspectionParamSetBeadInspectionParamset_bead_inspection_param

另见

clear_bead_inspection_modelclear_bead_inspection_modelClearBeadInspectionModelClearBeadInspectionModelClearBeadInspectionModelclear_bead_inspection_model

模块

二维计量