find_generic_shape_modelT_find_generic_shape_modelFindGenericShapeModelFindGenericShapeModelfind_generic_shape_model (Operator)

Name

find_generic_shape_modelT_find_generic_shape_modelFindGenericShapeModelFindGenericShapeModelfind_generic_shape_model — Suche der besten Matches eines oder mehrerer Formmodelle in einem Bild.

Signatur

find_generic_shape_model(SearchImage : : ModelID : MatchResultID, NumMatchResult)

Herror T_find_generic_shape_model(const Hobject SearchImage, const Htuple ModelID, Htuple* MatchResultID, Htuple* NumMatchResult)

void FindGenericShapeModel(const HObject& SearchImage, const HTuple& ModelID, HTuple* MatchResultID, HTuple* NumMatchResult)

static HGenericShapeModelResult HShapeModel::FindGenericShapeModel(const HObject& SearchImage, const HShapeModelArray& ModelID, Hlong* NumMatchResult)

HGenericShapeModelResult HShapeModel::FindGenericShapeModel(const HObject& SearchImage, Hlong* NumMatchResult) const

Hlong HGenericShapeModelResult::FindGenericShapeModel(const HObject& SearchImage, const HShapeModelArray& ModelID)

Hlong HGenericShapeModelResult::FindGenericShapeModel(const HObject& SearchImage, const HShapeModel& ModelID)

HGenericShapeModelResult HImage::FindGenericShapeModel(const HShapeModelArray& ModelID, Hlong* NumMatchResult) const

HGenericShapeModelResult HImage::FindGenericShapeModel(const HShapeModel& ModelID, Hlong* NumMatchResult) const

static void HOperatorSet.FindGenericShapeModel(HObject searchImage, HTuple modelID, out HTuple matchResultID, out HTuple numMatchResult)

static HGenericShapeModelResult HShapeModel.FindGenericShapeModel(HObject searchImage, HShapeModel[] modelID, out int numMatchResult)

HGenericShapeModelResult HShapeModel.FindGenericShapeModel(HObject searchImage, out int numMatchResult)

int HGenericShapeModelResult.FindGenericShapeModel(HObject searchImage, HShapeModel[] modelID)

int HGenericShapeModelResult.FindGenericShapeModel(HObject searchImage, HShapeModel modelID)

HGenericShapeModelResult HImage.FindGenericShapeModel(HShapeModel[] modelID, out int numMatchResult)

HGenericShapeModelResult HImage.FindGenericShapeModel(HShapeModel modelID, out int numMatchResult)

def find_generic_shape_model(search_image: HObject, model_id: MaybeSequence[HHandle]) -> Tuple[HHandle, int]

Beschreibung

Der Operator find_generic_shape_modelfind_generic_shape_modelFindGenericShapeModelFindGenericShapeModelFindGenericShapeModelfind_generic_shape_model findet die besten Instanzen eines oder mehrerer Formmodelle, die in ModelIDModelIDModelIDModelIDmodelIDmodel_id übergeben werden, im Eingabebild SearchImageSearchImageSearchImageSearchImagesearchImagesearch_image. Die gefundenen Matches werden in MatchResultIDMatchResultIDMatchResultIDMatchResultIDmatchResultIDmatch_result_id zurückgegeben und können mit get_generic_shape_model_resultget_generic_shape_model_resultGetGenericShapeModelResultGetGenericShapeModelResultGetGenericShapeModelResultget_generic_shape_model_result und get_generic_shape_model_result_objectget_generic_shape_model_result_objectGetGenericShapeModelResultObjectGetGenericShapeModelResultObjectGetGenericShapeModelResultObjectget_generic_shape_model_result_object abgefragt werden. Die Anzahl gefundener Matches wird in NumMatchResultNumMatchResultNumMatchResultNumMatchResultnumMatchResultnum_match_result zurückgegeben. Das Modell kann mit set_generic_shape_model_paramset_generic_shape_model_paramSetGenericShapeModelParamSetGenericShapeModelParamSetGenericShapeModelParamset_generic_shape_model_param und set_generic_shape_model_objectset_generic_shape_model_objectSetGenericShapeModelObjectSetGenericShapeModelObjectSetGenericShapeModelObjectset_generic_shape_model_object parametrisiert werden, wodurch der Suchvorgang gesteuert werden kann.

Die Domäne des Eingabebildes SearchImageSearchImageSearchImageSearchImagesearchImagesearch_image bestimmt die ROI für die Suche. Sie schränkt den Suchbereich ein, da sie als Begrenzung für den Schwerpunkt des Modells ModelIDModelIDModelIDModelIDmodelIDmodel_id gilt, wodurch der Matching-Vorgang beschleunigt wird. Für Informationen zum Übergeben von Bild-Tupeln an SearchImageSearchImageSearchImageSearchImagesearchImagesearch_image siehe unten. Desweiteren ist der Suchbereich durch die Größe von SearchImageSearchImageSearchImageSearchImagesearchImagesearch_image begrenzt. Standardmäßig wird ModelIDModelIDModelIDModelIDmodelIDmodel_id nur an den Stellen der Domäne gesucht an denen ModelIDModelIDModelIDModelIDmodelIDmodel_id komplett hineinpasst. Dementsprechend wird ModelIDModelIDModelIDModelIDmodelIDmodel_id nicht gefunden wenn es über den Bildrand hinausragt. Dies gilt für alle Stufen der Bildpyramide.

In seltenen Fällen, welche typischerweise in künstlich erzeugten Bildern auftreten, können Instanzen von ModelIDModelIDModelIDModelIDmodelIDmodel_id nicht im Bild gefunden werden wenn sie den Rand der Domäne auf irgendeiner Stufe der Bildpyramide berühren. Als Daumenregel kann man annehmen, dass ModelIDModelIDModelIDModelIDmodelIDmodel_id nicht gefunden werden könnte wenn dessen Entfernung zum Bildrand kleiner als Pixel ist (wobei für die Anzahl an Pyramidenstufen steht). Dieses Verhalten kann mittels 'border_shape_models'"border_shape_models""border_shape_models""border_shape_models""border_shape_models""border_shape_models" geändert werden, siehe set_generic_shape_model_paramset_generic_shape_model_paramSetGenericShapeModelParamSetGenericShapeModelParamSetGenericShapeModelParamset_generic_shape_model_param. Bei der Suche mit mehreren Modellen wird 'border_shape_models'"border_shape_models""border_shape_models""border_shape_models""border_shape_models""border_shape_models" für alle Modelle als 'true'"true""true""true""true""true" behandelt, selbst wenn nur bei einem der Modelle einer Suche 'border_shape_models'"border_shape_models""border_shape_models""border_shape_models""border_shape_models""border_shape_models" als 'true'"true""true""true""true""true" gilt.

Werden mehrere Modelle gesucht, dann kann der Suchbereich für alle Modelle gleichzeitig eingeschränkt werden indem ein einzelnes Bild mit reduzierter Domäne in SearchImageSearchImageSearchImageSearchImagesearchImagesearch_image übergeben wird.

Alternativ kann der Suchbereich auch für jedes Modell individuell eingeschränkt werden indem ein Objekt mit mehreren Bildobjekten übergeben wird, eins für jedes Modell in ModelIDModelIDModelIDModelIDmodelIDmodel_id. Der Suchbereich wird dann jeweils über die Domäne des entsprechenden Bildes bestimmt. Abgesehen von der Domäne müssen die Bilder gleich sein, d.h., die Pointer der einzelnen Bilder müssen das gleiche Bild referenzieren und somit identisch sein. Siehe get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1GetImagePointer1get_image_pointer1 zum Überprüfen der Pointer.

Werden mehrere Modelle angewendet, müssen diese unterschiedliche Identifikatoren ('model_identifier'"model_identifier""model_identifier""model_identifier""model_identifier""model_identifier") aufweisen. Dadurch kann jede gefundene Instanz dem entsprechenden Formmodell mit dem es gefunden wurde zugeordnet werden. Ist dies nicht der Fall wird eine Fehlerbehandlung durchgeführt.

Ausführungsinformationen

Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.

Dieser Operator unterstützt Cancel-Timeouts und Interrupts.

Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:

Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.

Parameter

SearchImageSearchImageSearchImageSearchImagesearchImagesearch_image (input_object)  (multichannel-)object(-array) objectHObjectHObjectHObjectHobject

Bild, in dem das Modell gesucht wird.

ModelIDModelIDModelIDModelIDmodelIDmodel_id (input_control, Zustand wird modifiziert)  shape_model(-array) HShapeModel, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Formmodells.

MatchResultIDMatchResultIDMatchResultIDMatchResultIDmatchResultIDmatch_result_id (output_control)  generic_shape_model_result HGenericShapeModelResult, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle der gefundenen Matches.

NumMatchResultNumMatchResultNumMatchResultNumMatchResultnumMatchResultnum_match_result (output_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl gefundener Matches.

Ergebnis

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

Vorgänger

train_generic_shape_modeltrain_generic_shape_modelTrainGenericShapeModelTrainGenericShapeModelTrainGenericShapeModeltrain_generic_shape_model, set_generic_shape_model_paramset_generic_shape_model_paramSetGenericShapeModelParamSetGenericShapeModelParamSetGenericShapeModelParamset_generic_shape_model_param

Modul

Matching