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.
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