| Operatoren |
set_fuzzy_measure — Spezifikation einer Fuzzy-Funktion.
set_fuzzy_measure( : : MeasureHandle, SetType, Function : )
set_fuzzy_measure legt eine Fuzzy-Funktion fest, welche dem Parameter Function übergeben wird und in den Operatoren fuzzy_measure_pos, fuzzy_measure_pairs und fuzzy_measure_pairing die gefundenen Kanten bewertet. Zu diesem Zweck können Bewertungskriterien für verschiedene Merkmale von Kanten und Kantenpaaren mit je einer Funktion beschrieben werden. Ein auf diese Weise charakterisiertes Merkmal wird Fuzzy-Set genannt. Wird keine Funktion für ein Fuzzy-Set definiert, so wird dieses Merkmal nicht für die Bewertung der gefundenen Kantenpaare herangezogen. Durch erneutes Setzen eines Fuzzy-Sets lässt sich hingegen die zuvor definierte Fuzzy-Funktion überschrieben. Gelöscht wird eine für ein Fuzzy-Set definierte Funktion mit Hilfe des reset_fuzzy_measure Operators.
Es können Funktionen für fünf unterschiedliche Typen von Fuzzy-Sets definiert werden, wobei die Unterarten eines Sets nur gegeneinander exclusiv gesetzt werden können:
'contrast' verwendet eine Fuzzy-Funktion, welche die Amplituden der extrahierten Kanten bewertet. Im Falle von Kantenpaaren ermittelt sich die Fuzzy-Bewertung durch das geometrische Mittel der Einzelbewertungen beider Kanten.
Die Fuzzy-Funktion des Sets 'position' bewertet den gerichteten Abstand p von jeder gefundenen Kante zum Referenzpunkt des Messobjekts, welches mit gen_measure_arc oder gen_measure_rectangle2 erzeugt wird. Im Falle der Extraktion von Kantenpaare mit fuzzy_measure_pairs/fuzzy_measure_pairing setzt das Ergebnis der Bewertung aus dem geometrischen Mittel der Bewertungen der zugehörigen beiden Einzelkanten zusammen. 'position' legt den Referenzpunkt an den Anfang, während 'position_center' b.z.w. 'position_end' den Referenzpunkt auf die Mitte b.z.w. das Ende des eindimensionalen Grauwertprofils setzten. Wenn die Bewertung von der Position des zu messenden Objektes entlang des Grauwertprofils abhängt, lässt sich der Referenzpunkt mit Hilfe von 'position_first_edge' / 'position_last_edge' auf die erste/letzte extrahierte Kante setzten.
Ähnlich zu 'position' bewertet 'position_pair' den Abstand jeden Kantenpaares zu dem Referenzpunkt. Die Position eines Paares wird dabei durch die Mitte der beiden Einzelkanten definiert. Der Bezugspunkt des Messobjekts kann dabei entsprechend mit 'position_pair_center', 'position_pair_end' und 'position_first_pair', 'position_last_pair' beeinflusst werden. Im Gegensatz zu 'position' wird dieses Fuzzy-Set nur von den Operatoren fuzzy_measure_pairs/ fuzzy_measure_pairing verwendet.
'size' bezeichnet ein Fuzzy-Set, das den Abstand zwischen den beiden Kanten eines Paares in Pixeln bewertet. Die Verarbeitungsgeschwindigkeit von fuzzy_measure_pairs / fuzzy_measure_pairing lässt sich erhöhen, indem eine obere Grenze x_max für die Breite festgelegt und die korrespondierende Ordinate auf den Wert 0.0 gesetzt wird. Dadurch wird erreicht, dass nicht mehr alle möglichen Paare betrachtet werden müssen.
Die Fuzzy-Funktion des Sets 'gray' gewichtet den Mittelwert des projizierten Grauwertprofils zwischen den beiden Kanten eines Paares. Dieses Fuzzy-Set wird daher nur von den Operatoren fuzzy_measure_pairs und/ fuzzy_measure_pairing unterstützt.
Eine normalisierte Fuzzy-Funktion wird durch eine stückweise lineare Funktion beschrieben, welche aus mindestens zwei Stützstellen besteht, die in aufsteigender Reihenfolge ihres Abszissenwertes x sortiert sind. Die Ordinate y beschreibt die Gewichtung zum korrespondierenden Merkmalwert x und muss in dem Bereich von 0.0 <= y <= 1.0 liegen. Außerhalb des Funktionsintervalls, welches durch den größten und kleinsten Abszissenwert x festgelegt ist, wird die Fuzzy-Funktion konstant mit den Ordinatenwerten der Intervallgrenzen fortgeführt. Zwischen den Stützstellen wird der Funktionswert linear interpoliert. Solche Fuzzy-Funktionen können mit Hilfe des create_funct_1d_pairs Operators erzeugt werden.
Wird mehr als ein Fuzzy-Set definiert setzt sich für fuzzy_measure_pos / fuzzy_measure_pairs / fuzzy_measure_pairing die resultierende Fuzzy-Bewertung aus dem geometrischen Mittel der Bewertungen aus den einzelnen Sets zusammen.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Der Wert dieses Parameters darf nicht über mehrere Threads verwendet werden.Handle des Messobjekts.
Auswahl des Fuzzy-Sets.
Defaultwert: 'contrast'
Werteliste: 'contrast', 'gray', 'position', 'position_center', 'position_end', 'position_first_edge', 'position_first_pair', 'position_last_edge', 'position_last_pair', 'position_pair_center', 'position_pair_end', 'size'
Fuzzy-Funktion.
* how to use a fuzzy function
* ...
gen_measure_rectangle2 (50, 100, 0, 200, 100, 512, 512, 'nearest_neighbor', \
MeasureHandle)
* create a generalized fuzzy function to evaluate edge pairs
* * (30% uncertainty).
create_funct_1d_pairs ([0.7,1.0,1.3], [0.0,1.0,0.0], SizeFunction)
* and transform it to expected size of 13.45 pixels
transform_funct_1d (SizeFunction, [1.0,0.0,13.45,0.0], TransformedFunction)
set_fuzzy_measure (MeasureHandle, 'size', SizeFunction)
fuzzy_measure_pairs (Image, MeasureHandle, 1, 30, 0.5, 'all', RowEdgeFirst, \
ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, \
ColumnEdgeSecond, AmplitudeSecond, RowEdgeCenter, \
ColumnEdgeCenter, FuzzyScore, IntraDistance, \
InterDistance)
gen_measure_arc, gen_measure_rectangle2, create_funct_1d_pairs, transform_funct_1d
fuzzy_measure_pos, fuzzy_measure_pairs
1D Metrology
| Operatoren |