| Operatoren |
create_bead_inspection_model — Erzeugen eines Modells zur Inspektion von Kleberaupen.
create_bead_inspection_model(BeadContour : : TargetThickness, ThicknessTolerance, PositionTolerance, Polarity, GenParamName, GenParamValue : BeadInspectionModel)
create_bead_inspection_model erzeugt ein neues Modell zur Inspektion von Kleberauben.
Grundprinzip der Inspektion von Kleberaupen
Die Operatoren zur Kleberaupeninspektion erlauben es eine Referenzkontur festzulegen, die die Position und Form einer Kleberaupe repräsentiert. In Aufnahmen entsprechender Kleberaupen kann damit verifiziert werden, ob sich eine Kleberaupe an den von der Refernzkontur festgelegten Positionen befindet und ob sie von akzeptabler Breite ist. Diese Bilder müssen bereits zur Modelkontur ausgerichtet sein.
Der Operator create_bead_inspection_model gibt einen Handle auf das Modell in BeadInspectionModel zurück, welcher später benutzt werden kann um weitere Operationen damit durchzuführen. Das beinhaltet das Setzen von Parametern und das Druchführen der Inspektion.
Modellkontur
Um Kleberaupen inspizieren zu können, wird eine Kontur in BeadContour benötigt, die als Modell dient. So eine Kontur kann beispielsweise mit den Operatoren gen_contour_polygon_xld oder gen_contour_nurbs_xld erzeugt werden. Mit draw_polygon oder draw_nurbs kann sie im Grafikfenster direkt über ein Referenzbild gezeichnet werden. Bestehen die zu inspizierenden Kleberaupen aus mehreren Teilen, müssen mehrere Modelle erzeugt werden.
Basisparameter
| (1) |
| (2) |
Die folgenden Parameter werden bei der Erzeugung des Modells benötigt:
- TargetThickness: bestimmt die optimale Breite der Kleberaupe in Pixeln.
- ThicknessTolerance: bestimmt die Toleranz bezüglich der Breite der Kleberaupe. Ein Teil einer Kleberaupe wird als korrekt identifiziert, wenn seine Breite innerhalb des folgenden Intervals liegt: [TargetThickness-ThicknessTolerance, TargetThickness+ThicknessTolerance]
- PositionTolerance: bestimmt die Toleranz bezüglich der Position der Kleberaupe in Pixeln. Die Position ist das Zentrum der gefundenen Kleberaupe. Ein Teil einer Kleberaupe wird als korrekt identifiziert, wenn die Abweichung dieser Position zur entsprechenden Position auf der Modellkontur kleiner als PositionTolerance ist.
- Polarity: bestimmt die Polarität der Kleberaupe in den zu inspizierenden Bildern. 'light' wenn die Kleberaupe heller im Bild erscheint als ihr Hintergrund, ansonsten 'dark'.
Parameter für die Kantenextraktion
Die Inspektion von Kleberaupen verwendet Kantenextraktion um die Position der Kleberaupe im Bild zu bestimmen. Eine korrekte Wahl der Parameter für die Kantenextraktion führt zu besseren Ergebnissen. Die folgenden beiden Paramter können über die generischen Parameter gesetzt werden (siehe auch measure_pos):
Wie in measure_pos ist 'sigma' die Standardabweichung der zur Glättung verwendeten Gaussmaske. Die Wahl von 'sigma' hängt von der Bildqualität ab, hauptsächlich vom Rauschanteil. Der Standard für 'sigma' ist 2.0.
Wie in measure_pos ist 'threshold' die Schwelle für die Amplitude der extrahierten Kanten. Ein höherer Wert für 'threshold' verringert die Extraktion von Kanten im Bildrauschen. 'threshold' muss mindesten 1 betragen, der Standardwert ist 30.
Der Measure-Assistent kann verwendet werden um geeignete Werte für diese beiden Parameter zu bestimmen.
Freigabe des Modells
Da für das Modell Speicher allokiert wird (von create_bead_inspection_model und von apply_bead_inspection_model), sollte das Modell mit clear_bead_inspection_model freigegeben werden, sobald es nicht mehr benötigt wird.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Der Wert dieses Parameters darf nicht über mehrere Threads verwendet werden.XLD Kontur zur Festlegung der Position und Form der Kleberaupe.
Optimale Breite der Kleberaupe.
Defaultwert: 50
Typischer Wertebereich: 5 ≤ TargetThickness
Toleranz bezüglich der Breite der Kleberaupe.
Defaultwert: 15
Typischer Wertebereich: 0 ≤ ThicknessTolerance
Toleranz bezüglich der Position der Kleberaupe.
Defaultwert: 15
Typischer Wertebereich: 0 ≤ PositionTolerance
Polarität der Kleberaupe.
Defaultwert: 'light'
Werteliste: 'dark', 'light'
Namen der generischen Parameter.
Defaultwert: []
Werteliste: 'sigma', 'threshold'
Werte der generischen Parameter.
Defaultwert: []
Wertevorschläge: 0.6, 1.0, 4.0, 5.0, 10.0, 50.0
Handle für das neu erzeugte Modell.
* 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)
Der Operator create_bead_inspection_model gibt 2 (H_MSG_TRUE) zurück, sofern alle Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung ausgelöst.
gen_contour_nurbs_xld, gen_contour_polygon_xld
apply_bead_inspection_model, set_bead_inspection_param
2D Metrology
| Operatoren |