get_found_component_modelT_get_found_component_modelGetFoundComponentModelGetFoundComponentModel (Operator)

Name

get_found_component_modelT_get_found_component_modelGetFoundComponentModelGetFoundComponentModel — Liefert die Komponenten einer gefundenen Instanz eines Komponentenmodells zurück.

Signatur

get_found_component_model( : FoundComponents : ComponentModelID, ModelStart, ModelEnd, RowComp, ColumnComp, AngleComp, ScoreComp, ModelComp, ModelMatch, MarkOrientation : RowCompInst, ColumnCompInst, AngleCompInst, ScoreCompInst)

Herror T_get_found_component_model(Hobject* FoundComponents, const Htuple ComponentModelID, const Htuple ModelStart, const Htuple ModelEnd, const Htuple RowComp, const Htuple ColumnComp, const Htuple AngleComp, const Htuple ScoreComp, const Htuple ModelComp, const Htuple ModelMatch, const Htuple MarkOrientation, Htuple* RowCompInst, Htuple* ColumnCompInst, Htuple* AngleCompInst, Htuple* ScoreCompInst)

void GetFoundComponentModel(HObject* FoundComponents, const HTuple& ComponentModelID, const HTuple& ModelStart, const HTuple& ModelEnd, const HTuple& RowComp, const HTuple& ColumnComp, const HTuple& AngleComp, const HTuple& ScoreComp, const HTuple& ModelComp, const HTuple& ModelMatch, const HTuple& MarkOrientation, HTuple* RowCompInst, HTuple* ColumnCompInst, HTuple* AngleCompInst, HTuple* ScoreCompInst)

HRegion HComponentModel::GetFoundComponentModel(const HTuple& ModelStart, const HTuple& ModelEnd, const HTuple& RowComp, const HTuple& ColumnComp, const HTuple& AngleComp, const HTuple& ScoreComp, const HTuple& ModelComp, Hlong ModelMatch, const HString& MarkOrientation, HTuple* RowCompInst, HTuple* ColumnCompInst, HTuple* AngleCompInst, HTuple* ScoreCompInst) const

HRegion HComponentModel::GetFoundComponentModel(Hlong ModelStart, Hlong ModelEnd, double RowComp, double ColumnComp, double AngleComp, double ScoreComp, Hlong ModelComp, Hlong ModelMatch, const HString& MarkOrientation, double* RowCompInst, double* ColumnCompInst, double* AngleCompInst, double* ScoreCompInst) const

HRegion HComponentModel::GetFoundComponentModel(Hlong ModelStart, Hlong ModelEnd, double RowComp, double ColumnComp, double AngleComp, double ScoreComp, Hlong ModelComp, Hlong ModelMatch, const char* MarkOrientation, double* RowCompInst, double* ColumnCompInst, double* AngleCompInst, double* ScoreCompInst) const

HRegion HComponentModel::GetFoundComponentModel(Hlong ModelStart, Hlong ModelEnd, double RowComp, double ColumnComp, double AngleComp, double ScoreComp, Hlong ModelComp, Hlong ModelMatch, const wchar_t* MarkOrientation, double* RowCompInst, double* ColumnCompInst, double* AngleCompInst, double* ScoreCompInst) const   (Nur Windows)

static void HOperatorSet.GetFoundComponentModel(out HObject foundComponents, HTuple componentModelID, HTuple modelStart, HTuple modelEnd, HTuple rowComp, HTuple columnComp, HTuple angleComp, HTuple scoreComp, HTuple modelComp, HTuple modelMatch, HTuple markOrientation, out HTuple rowCompInst, out HTuple columnCompInst, out HTuple angleCompInst, out HTuple scoreCompInst)

HRegion HComponentModel.GetFoundComponentModel(HTuple modelStart, HTuple modelEnd, HTuple rowComp, HTuple columnComp, HTuple angleComp, HTuple scoreComp, HTuple modelComp, int modelMatch, string markOrientation, out HTuple rowCompInst, out HTuple columnCompInst, out HTuple angleCompInst, out HTuple scoreCompInst)

HRegion HComponentModel.GetFoundComponentModel(int modelStart, int modelEnd, double rowComp, double columnComp, double angleComp, double scoreComp, int modelComp, int modelMatch, string markOrientation, out double rowCompInst, out double columnCompInst, out double angleCompInst, out double scoreCompInst)

Beschreibung

get_found_component_modelget_found_component_modelGetFoundComponentModelGetFoundComponentModelGetFoundComponentModel liefert die Komponenten einer gefundenen Instanz des Komponentenmodells ComponentModelIDComponentModelIDComponentModelIDComponentModelIDcomponentModelID sowohl in Form von Konturregionen in FoundComponentsFoundComponentsFoundComponentsFoundComponentsfoundComponents als auch in numerischer Form zurück.

Der Operator get_found_component_modelget_found_component_modelGetFoundComponentModelGetFoundComponentModelGetFoundComponentModel kann dazu genutzt werden, das Ergebnis der mit find_component_modelfind_component_modelFindComponentModelFindComponentModelFindComponentModel erhaltenen Matches zu visualisieren.

Die Lage der zurückgelieferten Komponenten entspricht deren Lage im Suchbild, wie sie mit find_component_modelfind_component_modelFindComponentModelFindComponentModelFindComponentModel erhalten wurde. Daher müssen die Parameter ModelStartModelStartModelStartModelStartmodelStart, ModelEndModelEndModelEndModelEndmodelEnd, RowCompRowCompRowCompRowComprowComp, ColumnCompColumnCompColumnCompColumnCompcolumnComp, AngleCompAngleCompAngleCompAngleCompangleComp, ScoreCompScoreCompScoreCompScoreCompscoreComp und ModelCompModelCompModelCompModelCompmodelComp an get_found_component_modelget_found_component_modelGetFoundComponentModelGetFoundComponentModelGetFoundComponentModel so übergeben werden wie sie von find_component_modelfind_component_modelFindComponentModelFindComponentModelFindComponentModel zurückgeliefert worden sind. In ModelMatchModelMatchModelMatchModelMatchmodelMatch muss der Index der gefunden Instanz des Komponentenmodells übergeben werden. ModelMatchModelMatchModelMatchModelMatchmodelMatch muss somit zwischen 0 und m-1 liegen, wobei m gleich der Anzahl an Elemente in den Parametern ModelStartModelStartModelStartModelStartmodelStart und ModelEndModelEndModelEndModelEndmodelEnd ist und somit der Anzahl der gefundenen Instanzen entspricht. Soll zum Beispiel der beste aller gefundenen Matches zurückgeliefert werden, so muss ModelMatchModelMatchModelMatchModelMatchmodelMatch auf 0 gesetzt werden.

Bei rotationssymmetrischen Komponenten kann es darüber hinaus hilfreich sein, deren Orientierung 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 (siehe train_model_componentstrain_model_componentsTrainModelComponentsTrainModelComponentsTrainModelComponents oder create_component_modelcreate_component_modelCreateComponentModelCreateComponentModelCreateComponentModel) und wird beschrieben durch einen vom Referenzpunkt horizontal nach rechts zeigenden Pfeil.

Zur Vereinfachung werden sowohl die Lageparameter jeder Komponente als auch deren Bewertung (Score) der gefunden Instanz zusätzlich in numerischer Form in RowCompInstRowCompInstRowCompInstRowCompInstrowCompInst, ColumnCompInstColumnCompInstColumnCompInstColumnCompInstcolumnCompInst, AngleCompInstAngleCompInstAngleCompInstAngleCompInstangleCompInst und ScoreCompInstScoreCompInstScoreCompInstScoreCompInstscoreCompInst zurückgegeben. Diese vier Tupel haben immer die Länge n, wobei n die Anzahl der Komponenten im Komponentenmodell ComponentModelIDComponentModelIDComponentModelIDComponentModelIDcomponentModelID beschreibt. Konnte während der Suche eine Komponente nicht gefunden werden, so wird im entsprechenden Element in FoundComponentsFoundComponentsFoundComponentsFoundComponentsfoundComponents eine leere Region zurückgeliefert und der Wert des entsprechenden Elements in RowCompInstRowCompInstRowCompInstRowCompInstrowCompInst, ColumnCompInstColumnCompInstColumnCompInstColumnCompInstcolumnCompInst, AngleCompInstAngleCompInstAngleCompInstAngleCompInstangleCompInst und ScoreCompInstScoreCompInstScoreCompInstScoreCompInstscoreCompInst auf 0 gesetzt.

Ausführungsinformationen

Parameter

FoundComponentsFoundComponentsFoundComponentsFoundComponentsfoundComponents (output_object)  region-array objectHRegionHRegionHobject *

Gefundene Komponenten der ausgewählten Komponentenmodell-Instanz.

ComponentModelIDComponentModelIDComponentModelIDComponentModelIDcomponentModelID (input_control)  component_model HComponentModel, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Komponentenmodells.

ModelStartModelStartModelStartModelStartmodelStart (input_control)  integer(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Startindex jeder gefundenen Instanz des Komponentenmodells auf die Tupel, die die Komponentenmatches beschreiben.

ModelEndModelEndModelEndModelEndmodelEnd (input_control)  integer(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Endindex jeder gefundenen Instanz des Komponentenmodells auf die Tupel, die die Komponentenmatches beschreiben.

RowCompRowCompRowCompRowComprowComp (input_control)  point.y(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenkoordinate der gefundenen Komponentenmatches.

ColumnCompColumnCompColumnCompColumnCompcolumnComp (input_control)  point.x(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenkoordinate der gefundenen Komponentenmatches.

AngleCompAngleCompAngleCompAngleCompangleComp (input_control)  angle.rad(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Rotationswinkel der gefundenen Komponentenmatches.

ScoreCompScoreCompScoreCompScoreCompscoreComp (input_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Bewertung der gefundenen Komponentenmatches.

ModelCompModelCompModelCompModelCompmodelComp (input_control)  integer(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Index der gefundenen Komponenten.

ModelMatchModelMatchModelMatchModelMatchmodelMatch (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Index der gefundenen Instanz des Komponentenmodells, die zurückgeliefert werden soll.

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"

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

Zeilenkoordinate aller Komponenten der gewählten Modellinstanz.

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

Spaltenkoordinate aller Komponenten der gewählten Modellinstanz.

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

Rotationswinkel aller Komponenten der gewählten Modellinstanz.

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

Bewertung aller Komponenten der gewählten Modellinstanz.

Beispiel (HDevelop)

* Read a component model from file.
read_component_model ('pliers.cpm', ComponentModelID)
* Find the component model in a run-time image.
read_image (SearchImage, 'search_image.tif')
find_component_model (SearchImage, ComponentModelID, RootRanking, 0, \
                      rad(360), 0.5, 0, 0.5, 'stop_search', 'prune_branch', \
                      'none', 0.8, 'least_squares', 0, 0.8, ModelStart, \
                      ModelEnd, Score, RowComp, ColumnComp, AngleComp, \
                      ScoreComp, ModelComp)
* Visualize the found instances.
for i := 0 to |ModelStart|-1 by 1
    get_found_component_model (FoundComponents, ComponentModelID, \
                               ModelStart, ModelEnd, RowComp, ColumnComp, \
                               AngleComp, ScoreComp, ModelComp, i, 'false', \
                               RowCompInst, ColumnCompInst, AngleCompInst, \
                               ScoreCompInst)
    dev_display (FoundComponents)
endfor

Ergebnis

Sind die Parameterwerte korrekt, dann liefert get_found_component_modelget_found_component_modelGetFoundComponentModelGetFoundComponentModelGetFoundComponentModel den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

find_component_modelfind_component_modelFindComponentModelFindComponentModelFindComponentModel

Siehe auch

train_model_componentstrain_model_componentsTrainModelComponentsTrainModelComponentsTrainModelComponents, create_component_modelcreate_component_modelCreateComponentModelCreateComponentModelCreateComponentModel

Modul

Matching