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.
Das Konzept der 1D-Vermessung ist bei der Einleitung zu Kapitel 1D-Vermessung beschrieben.
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:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
MeasureHandle
(input_control, Zustand wird modifiziert) measure →
(handle)
Handle des Messobjekts.
SetType
(input_control) string →
(string)
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'
Function
(input_control) function_1d →
(real / integer)
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', TransformedFunction) 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