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 genauso viele 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.
TrainingComponents (output_object) region(-array) → object
Konturregionen der initialen Komponenten oder der Modellkomponenten.
ComponentTrainingID (input_control) component_training → (handle)
Handle des Trainingsergebnisses.
Components (input_control) string → (string / integer)
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
Image (input_control) string → (string / integer)
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
MarkOrientation (input_control) string → (string)
Markieren der Komponentenorientierung.
Defaultwert: 'false'
Werteliste: 'false', 'true'
Row (output_control) point.y(-array) → (real)
Zeilenkoordinate der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.
Column (output_control) point.x(-array) → (real)
Spaltenkoordinate der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.
Angle (output_control) angle.rad(-array) → (real)
Rotationswinkel der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.
Score (output_control) real(-array) → (real)
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