get_training_componentsT_get_training_componentsGetTrainingComponentsGetTrainingComponents (Operator)

Name

get_training_componentsT_get_training_componentsGetTrainingComponentsGetTrainingComponents — Liefert die initialen Komponenten oder die Modellkomponenten in einem bestimmten Bild zurück.

Signatur

get_training_components( : TrainingComponents : ComponentTrainingID, Components, Image, MarkOrientation : Row, Column, Angle, Score)

Herror T_get_training_components(Hobject* TrainingComponents, const Htuple ComponentTrainingID, const Htuple Components, const Htuple Image, const Htuple MarkOrientation, Htuple* Row, Htuple* Column, Htuple* Angle, Htuple* Score)

void GetTrainingComponents(HObject* TrainingComponents, const HTuple& ComponentTrainingID, const HTuple& Components, const HTuple& Image, const HTuple& MarkOrientation, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score)

HRegion HComponentTraining::GetTrainingComponents(const HTuple& Components, const HTuple& Image, const HString& MarkOrientation, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score) const

HRegion HComponentTraining::GetTrainingComponents(const HString& Components, const HString& Image, const HString& MarkOrientation, double* Row, double* Column, double* Angle, double* Score) const

HRegion HComponentTraining::GetTrainingComponents(const char* Components, const char* Image, const char* MarkOrientation, double* Row, double* Column, double* Angle, double* Score) const

HRegion HComponentTraining::GetTrainingComponents(const wchar_t* Components, const wchar_t* Image, const wchar_t* MarkOrientation, double* Row, double* Column, double* Angle, double* Score) const   (Nur Windows)

static void HOperatorSet.GetTrainingComponents(out HObject trainingComponents, HTuple componentTrainingID, HTuple components, HTuple image, HTuple markOrientation, out HTuple row, out HTuple column, out HTuple angle, out HTuple score)

HRegion HComponentTraining.GetTrainingComponents(HTuple components, HTuple image, string markOrientation, out HTuple row, out HTuple column, out HTuple angle, out HTuple score)

HRegion HComponentTraining.GetTrainingComponents(string components, string image, string markOrientation, out double row, out double column, out double angle, out double score)

Beschreibung

get_training_componentsget_training_componentsGetTrainingComponentsGetTrainingComponentsGetTrainingComponents liefert alle initialen Komponenten (wenn ComponentsComponentsComponentsComponentscomponents = 'initial_components'"initial_components""initial_components""initial_components""initial_components") oder alle Modellkomponenten (wenn ComponentsComponentsComponentsComponentscomponents = 'model_components'"model_components""model_components""model_components""model_components") in Form von Konturregionen in TrainingComponentsTrainingComponentsTrainingComponentsTrainingComponentstrainingComponents 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_componentstrain_model_componentsTrainModelComponentsTrainModelComponentsTrainModelComponents) erhalten werden.

Die Lage der zurückgelieferten Komponenten entspricht deren Lage im Modellbild (wenn ImageImageImageImageimage = 'model_image'"model_image""model_image""model_image""model_image" oder ImageImageImageImageimage = 0) oder in einem Trainingsbild (wenn ImageImageImageImageimage >= 1). Um die Komponenten in der Lage zu erhalten, in der sie im iten Trainingsbild gefunden wurden, muss ImageImageImageImageimage 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 MarkOrientationMarkOrientationMarkOrientationMarkOrientationmarkOrientation auf 'true'"true""true""true""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 RowRowRowRowrow, ColumnColumnColumnColumncolumn, AngleAngleAngleAngleangle und ScoreScoreScoreScorescore zurückgeliefert (siehe find_shape_modelfind_shape_modelFindShapeModelFindShapeModelFindShapeModel). Wurde für ComponentsComponentsComponentsComponentscomponents 'initial_components'"initial_components""initial_components""initial_components""initial_components" bzw. 'model_components'"model_components""model_components""model_components""model_components" gewählt, so enthalten die Tupel TrainingComponentsTrainingComponentsTrainingComponentsTrainingComponentstrainingComponents, RowRowRowRowrow, ColumnColumnColumnColumncolumn, AngleAngleAngleAngleangle und ScoreScoreScoreScorescore immer die gleiche Anzahl an Elementen wie initiale Komponenten bzw. Modellkomponenten in ComponentTrainingIDComponentTrainingIDComponentTrainingIDComponentTrainingIDcomponentTrainingID enthalten sind. Wurde eine Komponente im Bild nicht gefunden, so wird für TrainingComponentsTrainingComponentsTrainingComponentsTrainingComponentstrainingComponents eine leere Region und für die Ausgabe-Steuerparameter jeweils 0 als Wert zurückgeliefert. Wurde für ComponentsComponentsComponentsComponentscomponents 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_componentsget_training_componentsGetTrainingComponentsGetTrainingComponentsGetTrainingComponents kann dazu genutzt werden, das Ergebnis ComponentTrainingIDComponentTrainingIDComponentTrainingIDComponentTrainingIDcomponentTrainingID des mit train_model_componentstrain_model_componentsTrainModelComponentsTrainModelComponentsTrainModelComponents durchgeführten Trainings zu visualisieren. Damit ist es möglich, die Eignung der Trainingsbilder einzuschätzen oder auch die Parameterwahl von train_model_componentstrain_model_componentsTrainModelComponentsTrainModelComponentsTrainModelComponents 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_componentstrain_model_componentsTrainModelComponentsTrainModelComponentsTrainModelComponents erneut durchzuführen.

Ausführungsinformationen

Parameter

TrainingComponentsTrainingComponentsTrainingComponentsTrainingComponentstrainingComponents (output_object)  region(-array) objectHRegionHRegionHobject *

Konturregionen der initialen Komponenten oder der Modellkomponenten.

ComponentTrainingIDComponentTrainingIDComponentTrainingIDComponentTrainingIDcomponentTrainingID (input_control)  component_training HComponentTraining, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Trainingsergebnisses.

ComponentsComponentsComponentsComponentscomponents (input_control)  string HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

Art der zurückgelieferten Komponenten oder Index der initialen Komponente.

Defaultwert: 'model_components' "model_components" "model_components" "model_components" "model_components"

Wertevorschläge: 'model_components'"model_components""model_components""model_components""model_components", 'initial_components'"initial_components""initial_components""initial_components""initial_components", 0, 1, 2, 3, 4, 5

ImageImageImageImageimage (input_control)  string HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

Bild, für das die Komponenten zurückgeliefert werden sollen.

Defaultwert: 'model_image' "model_image" "model_image" "model_image" "model_image"

Wertevorschläge: 'model_image'"model_image""model_image""model_image""model_image", 0, 1, 2, 3, 4, 5, 6, 7, 8

MarkOrientationMarkOrientationMarkOrientationMarkOrientationmarkOrientation (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Markieren der Komponentenorientierung.

Defaultwert: 'false' "false" "false" "false" "false"

Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"

RowRowRowRowrow (output_control)  point.y(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenkoordinate der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.

ColumnColumnColumnColumncolumn (output_control)  point.x(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenkoordinate der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.

AngleAngleAngleAngleangle (output_control)  angle.rad(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Rotationswinkel der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.

ScoreScoreScoreScorescore (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Bewertung der gefundenen Instanz aller initialen Komponenten oder Modellkomponenten.

Beispiel (HDevelop)

* 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

Ergebnis

Ist der Handle des Trainingsergebnisses gültig, dann liefert get_training_componentsget_training_componentsGetTrainingComponentsGetTrainingComponentsGetTrainingComponents den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

train_model_componentstrain_model_componentsTrainModelComponentsTrainModelComponentsTrainModelComponents

Nachfolger

train_model_componentstrain_model_componentsTrainModelComponentsTrainModelComponentsTrainModelComponents

Siehe auch

find_shape_modelfind_shape_modelFindShapeModelFindShapeModelFindShapeModel

Modul

Matching