| Operatoren |
get_training_components — Liefert die initialen Komponenten oder die Modellkomponenten in einem bestimmten Bild zurück.
get_training_components( : TrainingComponents : ComponentTrainingID, Components, Image, MarkOrientation : Row, Column, Angle, Score)
get_training_components liefert alle initialen Komponenten (wenn Components = 'initial_components') oder alle Modellkomponenten (wenn Components = 'model_components') in Form von Konturregionen in TrainingComponents sowie in numerischer Form zurück. Alternativ dazu können durch direkte Angabe des Index einer initialen Komponente alle deren gefundenen Lagen (d.h. vor Auflösung der Mehrdeutigkeiten in train_model_components) erhalten werden.
Die Lage der zurückgelieferten Komponenten entspricht deren Lage im Modellbild (wenn Image = 'model_image' oder Image = 0) oder in einem Trainingsbild (wenn Image >= 1). Um die Komponenten in der Lage zu erhalten, in der sie im iten Trainingsbild gefunden wurden, muss Image auf i gesetzt werden. Darüber hinaus kann es bei rotationssymmetrischen Komponenten hilfreich sein, deren Orientierung im jeweiligen Bild zu markieren. Dies kann erreicht werden, indem MarkOrientation auf 'true' gesetzt wird. In diesem Fall wird die Konturregion der jeweiligen Komponente an ihrem Referenzpunkt durch einen Pfeil ergänzt, der in die Referenzrichtung zeigt. Die Referenzrichtung einer Komponente ergibt sich aus deren Orientierung im Modellbild und wird beschrieben durch einen vom Referenzpunkt horizontal nach rechts zeigenden Pfeil.
Zusätzlich zu den Konturregionen wird auch die Lage und die Bewertung aller gefundenen Komponenten in Row, Column, Angle und Score zurückgeliefert (siehe find_shape_model). Wurde für Components 'initial_components' bzw. 'model_components' gewählt, so enthalten die Tupel TrainingComponents, Row, Column, Angle und Score immer die gleiche Anzahl an Elementen wie initiale Komponenten bzw. Modellkomponenten in ComponentTrainingID enthalten sind. Wurde eine Komponente im Bild nicht gefunden, so wird für TrainingComponents eine leere Region und für die Ausgabe-Steuerparameter jeweils 0 als Wert zurückgeliefert. Wurde für Components dagegen der Index einer initialen Komponente übergeben, so enthalten die genannten Tupel genau soviele Elemente wie Matches der jeweiligen initialen Komponente im Bild gefunden wurden.
Der Operator get_training_components kann dazu genutzt werden, das Ergebnis ComponentTrainingID des mit train_model_components durchgeführten Trainings zu visualisieren. Damit ist es möglich, die Eignung der Trainingsbilder einzuschätzen oder auch die Parameterwahl von train_model_components zu überprüfen. Eventuell kann es sinnvoll sein, mit einem veränderten Satz von Trainingsbildern oder nach Justieren der Parameter das Training mit train_model_components erneut durchzuführen.
Konturregionen der initialen Komponenten oder der Modellkomponenten.
Handle des Trainingsergebnisses.
Art der zurückgelieferten Komponenten oder Index der initialen Komponente.
Defaultwert: 'model_components'
Wertevorschläge: 'model_components', 'initial_components', 0, 1, 2, 3, 4, 5
Bild, für das die Komponenten zurückgeliefert werden sollen.
Defaultwert: 'model_image'
Wertevorschläge: 'model_image', 0, 1, 2, 3, 4, 5, 6, 7, 8
Markieren der Komponentenorientierung.
Defaultwert: 'false'
Werteliste: 'false', 'true'
Zeilenkoordinate der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.
Spaltenkoordinate der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.
Rotationswinkel der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.
Bewertung der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.
* Get the model image.
read_image (ModelImage, 'model_image.tif')
* Define the regions for the initial components.
gen_rectangle2 (InitialComponentRegions, 212, 233, 0.62, 167, 29)
gen_rectangle2 (Rectangle2, 298, 363, 1.17, 162, 34)
gen_rectangle2 (Rectangle3, 63, 444, -0.26, 50, 27)
gen_rectangle2 (Rectangle4, 120, 473, 0, 33, 20)
concat_obj (InitialComponentRegions, Rectangle2, InitialComponentRegions)
concat_obj (InitialComponentRegions, Rectangle3, InitialComponentRegions)
concat_obj (InitialComponentRegions, Rectangle4, InitialComponentRegions)
* Get the training images.
gen_empty_obj (TrainingImages)
for i := 1 to 4 by 1
read_image (TrainingImage, 'training_image-'+i+'.tif')
concat_obj (TrainingImages, TrainingImage, TrainingImages)
endfor
* Extract the model components and train the relations.
train_model_components (ModelImage, InitialComponentRegions, \
TrainingImages, ModelComponents, 22, 60, 30, 0.6, \
0, 0, rad(60), 'speed', 'rigidity', 0.2, 0.4, \
ComponentTrainingID)
* Visualize the result of the training.
count_obj (InitialComponentRegions, NumInitComp)
count_obj (TrainingImages, NumTrainings)
for i := 1 to NumTrainings by 1
select_obj (TrainingImages, TrainingImage, i)
for j := 0 to NumInitComp-1 by 1
* Visualize the ambiguous poses of each initial component.
get_training_components (TrainingComponents, ComponentTrainingID, \
j, i, 'false', Row, Column, Angle, Score)
endfor
* Visualize the final poses of the initial components.
get_training_components (TrainingComponents, ComponentTrainingID, \
'initial_components', i, 'false', \
Row, Column, Angle, Score)
* Visualize the final poses of the model components.
get_training_components (TrainingComponents, ComponentTrainingID, \
'model_components', i, 'false', \
Row, Column, Angle, Score)
endfor
Ist der Handle des Trainingsergebnisses gültig, dann liefert get_training_components den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Matching
| Operatoren |