Name
create_bead_inspection_modelcreate_bead_inspection_modelCreateBeadInspectionModelcreate_bead_inspection_modelCreateBeadInspectionModelCreateBeadInspectionModel — Create a model to inspect beads or adhesive in images.
Herror create_bead_inspection_model(const Hobject BeadContour, const Hlong TargetThickness, const Hlong ThicknessTolerance, const Hlong PositionTolerance, const char* Polarity, const char* GenParamNames, const Hlong GenParamValues, Hlong* BeadInspectionModel)
Herror T_create_bead_inspection_model(const Hobject BeadContour, const Htuple TargetThickness, const Htuple ThicknessTolerance, const Htuple PositionTolerance, const Htuple Polarity, const Htuple GenParamNames, const Htuple GenParamValues, Htuple* BeadInspectionModel)
void CreateBeadInspectionModel(const HObject& BeadContour, const HTuple& TargetThickness, const HTuple& ThicknessTolerance, const HTuple& PositionTolerance, const HTuple& Polarity, const HTuple& GenParamNames, const HTuple& GenParamValues, HTuple* BeadInspectionModel)
void HBeadInspectionModel::HBeadInspectionModel(const HXLD& BeadContour, const HTuple& TargetThickness, const HTuple& ThicknessTolerance, const HTuple& PositionTolerance, const HString& Polarity, const HTuple& GenParamNames, const HTuple& GenParamValues)
void HBeadInspectionModel::HBeadInspectionModel(const HXLD& BeadContour, Hlong TargetThickness, Hlong ThicknessTolerance, Hlong PositionTolerance, const HString& Polarity, const HString& GenParamNames, Hlong GenParamValues)
void HBeadInspectionModel::HBeadInspectionModel(const HXLD& BeadContour, Hlong TargetThickness, Hlong ThicknessTolerance, Hlong PositionTolerance, const char* Polarity, const char* GenParamNames, Hlong GenParamValues)
void HBeadInspectionModel::CreateBeadInspectionModel(const HXLD& BeadContour, const HTuple& TargetThickness, const HTuple& ThicknessTolerance, const HTuple& PositionTolerance, const HString& Polarity, const HTuple& GenParamNames, const HTuple& GenParamValues)
void HBeadInspectionModel::CreateBeadInspectionModel(const HXLD& BeadContour, Hlong TargetThickness, Hlong ThicknessTolerance, Hlong PositionTolerance, const HString& Polarity, const HString& GenParamNames, Hlong GenParamValues)
void HBeadInspectionModel::CreateBeadInspectionModel(const HXLD& BeadContour, Hlong TargetThickness, Hlong ThicknessTolerance, Hlong PositionTolerance, const char* Polarity, const char* GenParamNames, Hlong GenParamValues)
void HOperatorSetX.CreateBeadInspectionModel(
[in] IHUntypedObjectX* BeadContour, [in] VARIANT TargetThickness, [in] VARIANT ThicknessTolerance, [in] VARIANT PositionTolerance, [in] VARIANT Polarity, [in] VARIANT GenParamNames, [in] VARIANT GenParamValues, [out] VARIANT* BeadInspectionModel)
void HBeadInspectionModelX.CreateBeadInspectionModel(
[in] IHXLDX* BeadContour, [in] VARIANT TargetThickness, [in] VARIANT ThicknessTolerance, [in] VARIANT PositionTolerance, [in] BSTR Polarity, [in] VARIANT GenParamNames, [in] VARIANT GenParamValues)
static void HOperatorSet.CreateBeadInspectionModel(HObject beadContour, HTuple targetThickness, HTuple thicknessTolerance, HTuple positionTolerance, HTuple polarity, HTuple genParamNames, HTuple genParamValues, out HTuple beadInspectionModel)
public HBeadInspectionModel(HXLD beadContour, HTuple targetThickness, HTuple thicknessTolerance, HTuple positionTolerance, string polarity, HTuple genParamNames, HTuple genParamValues)
public HBeadInspectionModel(HXLD beadContour, int targetThickness, int thicknessTolerance, int positionTolerance, string polarity, string genParamNames, int genParamValues)
void HBeadInspectionModel.CreateBeadInspectionModel(HXLD beadContour, HTuple targetThickness, HTuple thicknessTolerance, HTuple positionTolerance, string polarity, HTuple genParamNames, HTuple genParamValues)
void HBeadInspectionModel.CreateBeadInspectionModel(HXLD beadContour, int targetThickness, int thicknessTolerance, int positionTolerance, string polarity, string genParamNames, int genParamValues)
create_bead_inspection_modelcreate_bead_inspection_modelCreateBeadInspectionModelcreate_bead_inspection_modelCreateBeadInspectionModelCreateBeadInspectionModel creates a model to
inspect beads or adhesive in images.
The basic principle of bead inspection
The bead inspection operators enable the user to define a reference contour
that indicates the position and shape of a bead or adhesive on a certain
product. Images of such products can then be inspected to verify that a
bead or adhesive exists at the positions defined by the contour and that it
is of acceptable thickness. The images must already be aligned with the
given contour.
The operator create_bead_inspection_modelcreate_bead_inspection_modelCreateBeadInspectionModelcreate_bead_inspection_modelCreateBeadInspectionModelCreateBeadInspectionModel returns a handle to the
bead inspection model in BeadInspectionModelBeadInspectionModelBeadInspectionModelBeadInspectionModelBeadInspectionModelbeadInspectionModel, which can later be
used to perform other operations related to bead inspection. These
operations include the modification of the bead inspection model parameters
and performing the inspection on input images as defined by the model.
Providing the model contour
In order to inspect beads, a contour serving as the model for the bead must
be provided in BeadContourBeadContourBeadContourBeadContourBeadContourbeadContour.
Such a contour can be generated, e.g., by using the
operators gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXld or gen_contour_nurbs_xldgen_contour_nurbs_xldGenContourNurbsXldgen_contour_nurbs_xldGenContourNurbsXldGenContourNurbsXld.
The contour must be defined to be aligned to the beads in the input images.
To achieve this, the user can draw the XLD directly on a reference image
in the graphics window (with draw_polygondraw_polygonDrawPolygondraw_polygonDrawPolygonDrawPolygon or
draw_nurbsdraw_nurbsDrawNurbsdraw_nurbsDrawNurbsDrawNurbs).
To inspect beads consisting of multiple parts, multiple models must be
created.
Mandatory parameters
In order to inspect beads, the following parameters must be set:
- TargetThicknessTargetThicknessTargetThicknessTargetThicknessTargetThicknesstargetThickness: defines the optimal bead
thickness in pixels.
- ThicknessToleranceThicknessToleranceThicknessToleranceThicknessToleranceThicknessTolerancethicknessTolerance: defines the tolerance
to the bead's thickness in pixels. The bead is accepted if its
thickness is within the range:
[TargetThicknessTargetThicknessTargetThicknessTargetThicknessTargetThicknesstargetThickness-ThicknessToleranceThicknessToleranceThicknessToleranceThicknessToleranceThicknessTolerancethicknessTolerance,
TargetThicknessTargetThicknessTargetThicknessTargetThicknessTargetThicknesstargetThickness+ThicknessToleranceThicknessToleranceThicknessToleranceThicknessToleranceThicknessTolerancethicknessTolerance]
- PositionTolerancePositionTolerancePositionTolerancePositionTolerancePositionTolerancepositionTolerance: defines the tolerance
to the bead's position in pixels. The 'bead position' is the center of
the detected bead. The bead is accepted if the distance between its center
and the contour's position is less than the PositionTolerancePositionTolerancePositionTolerancePositionTolerancePositionTolerancepositionTolerance.
- PolarityPolarityPolarityPolarityPolaritypolarity: defines the polarity of the bead in
the images to inspect. 'light'"light""light""light""light""light" if the bead is lighter than its
background, 'dark'"dark""dark""dark""dark""dark" otherwise.
Edge extraction parameters
Bead inspection relies on edge extraction to identify the edges of beads.
Accordingly, correct initialization of the measure_posmeasure_posMeasurePosmeasure_posMeasurePosMeasurePos
parameters helps improve bead inspection results. In particular, the
following 2 parameters are included as generic parameters in the bead
inspection model:
- 'sigma'"sigma""sigma""sigma""sigma""sigma":
-
As defined in measure_posmeasure_posMeasurePosmeasure_posMeasurePosMeasurePos, 'sigma'"sigma""sigma""sigma""sigma""sigma" is the standard
deviation of the Gaussian smoothing kernel. The value of
'sigma'"sigma""sigma""sigma""sigma""sigma" depends on the quality of the images to be
inspected, namely on the amount of noise. 'sigma'"sigma""sigma""sigma""sigma""sigma" is set to
2.0 by default.
- 'threshold'"threshold""threshold""threshold""threshold""threshold":
-
As defined in measure_posmeasure_posMeasurePosmeasure_posMeasurePosMeasurePos, 'threshold'"threshold""threshold""threshold""threshold""threshold" sets the
minimum edge amplitude to be extracted. Setting a higher value for
'threshold'"threshold""threshold""threshold""threshold""threshold" helps to avoid the extraction of noise edges and
select salient edges. 'threshold'"threshold""threshold""threshold""threshold""threshold" cannot be less
than 1 and is set to 30 by default.
The Measure Assistant can be used to find suitable values for these two
parameters.
Free the bead inspection model
Since memory is allocated for the model during the call of the operator
create_bead_inspection_modelcreate_bead_inspection_modelCreateBeadInspectionModelcreate_bead_inspection_modelCreateBeadInspectionModelCreateBeadInspectionModel and during the following operations,
the model should be freed explicitly by the operator
clear_bead_inspection_modelclear_bead_inspection_modelClearBeadInspectionModelclear_bead_inspection_modelClearBeadInspectionModelClearBeadInspectionModel as soon as it is no longer used.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.
This operator modifies the state of the following input parameter:
The value of this parameter may not be shared across multiple threads without external synchronization.
XLD contour specifying the expected bead's shape and
position.
Optimal bead thickness.
Default value: 50
Typical range of values: 5
≤
TargetThickness
TargetThickness
TargetThickness
TargetThickness
TargetThickness
targetThickness
Tolerance of the bead's center position.
Default value: 15
Typical range of values: 0
≤
PositionTolerance
PositionTolerance
PositionTolerance
PositionTolerance
PositionTolerance
positionTolerance
The bead's polarity.
Default value:
'light'
"light"
"light"
"light"
"light"
"light"
List of values: 'dark'"dark""dark""dark""dark""dark", 'light'"light""light""light""light""light"
Names of the generic parameters that can be
adjusted for the bead inspection model.
Default value: []
List of values: 'sigma'"sigma""sigma""sigma""sigma""sigma", 'threshold'"threshold""threshold""threshold""threshold""threshold"
Values of the generic parameters that can be
adjusted for the bead inspection model.
Default value: []
List of values: 0.6, 1.0, 4.0, 5.0, 10.0, 50.0
Handle for using and accessing the bead inspection
model.
* 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)
The operator create_bead_inspection_modelcreate_bead_inspection_modelCreateBeadInspectionModelcreate_bead_inspection_modelCreateBeadInspectionModelCreateBeadInspectionModel returns the value 2 (H_MSG_TRUE)
if the given parameters are valid and within acceptable range.
Otherwise, an exception will be raised.
gen_contour_nurbs_xldgen_contour_nurbs_xldGenContourNurbsXldgen_contour_nurbs_xldGenContourNurbsXldGenContourNurbsXld,
gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXld
apply_bead_inspection_modelapply_bead_inspection_modelApplyBeadInspectionModelapply_bead_inspection_modelApplyBeadInspectionModelApplyBeadInspectionModel,
set_bead_inspection_paramset_bead_inspection_paramSetBeadInspectionParamset_bead_inspection_paramSetBeadInspectionParamSetBeadInspectionParam
clear_bead_inspection_modelclear_bead_inspection_modelClearBeadInspectionModelclear_bead_inspection_modelClearBeadInspectionModelClearBeadInspectionModel
2D Metrology