create_component_modelT_create_component_modelCreateComponentModelCreateComponentModelcreate_component_model (Operator)

Name

create_component_modelT_create_component_modelCreateComponentModelCreateComponentModelcreate_component_model — Vorbereiten eines Komponentenmodells für das Matching auf der Basis explizit vorgegebener Komponenten und Relationen.

Signatur

create_component_model(ModelImage, ComponentRegions : : VariationRow, VariationColumn, VariationAngle, AngleStart, AngleExtent, ContrastLowComp, ContrastHighComp, MinSizeComp, MinContrastComp, MinScoreComp, NumLevelsComp, AngleStepComp, OptimizationComp, MetricComp, PregenerationComp : ComponentModelID, RootRanking)

Herror T_create_component_model(const Hobject ModelImage, const Hobject ComponentRegions, const Htuple VariationRow, const Htuple VariationColumn, const Htuple VariationAngle, const Htuple AngleStart, const Htuple AngleExtent, const Htuple ContrastLowComp, const Htuple ContrastHighComp, const Htuple MinSizeComp, const Htuple MinContrastComp, const Htuple MinScoreComp, const Htuple NumLevelsComp, const Htuple AngleStepComp, const Htuple OptimizationComp, const Htuple MetricComp, const Htuple PregenerationComp, Htuple* ComponentModelID, Htuple* RootRanking)

void CreateComponentModel(const HObject& ModelImage, const HObject& ComponentRegions, const HTuple& VariationRow, const HTuple& VariationColumn, const HTuple& VariationAngle, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& ContrastLowComp, const HTuple& ContrastHighComp, const HTuple& MinSizeComp, const HTuple& MinContrastComp, const HTuple& MinScoreComp, const HTuple& NumLevelsComp, const HTuple& AngleStepComp, const HTuple& OptimizationComp, const HTuple& MetricComp, const HTuple& PregenerationComp, HTuple* ComponentModelID, HTuple* RootRanking)

void HComponentModel::HComponentModel(const HImage& ModelImage, const HRegion& ComponentRegions, const HTuple& VariationRow, const HTuple& VariationColumn, const HTuple& VariationAngle, double AngleStart, double AngleExtent, const HTuple& ContrastLowComp, const HTuple& ContrastHighComp, const HTuple& MinSizeComp, const HTuple& MinContrastComp, const HTuple& MinScoreComp, const HTuple& NumLevelsComp, const HTuple& AngleStepComp, const HString& OptimizationComp, const HTuple& MetricComp, const HTuple& PregenerationComp, HTuple* RootRanking)

void HComponentModel::HComponentModel(const HImage& ModelImage, const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const HString& OptimizationComp, const HString& MetricComp, const HString& PregenerationComp, Hlong* RootRanking)

void HComponentModel::HComponentModel(const HImage& ModelImage, const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const char* OptimizationComp, const char* MetricComp, const char* PregenerationComp, Hlong* RootRanking)

void HComponentModel::HComponentModel(const HImage& ModelImage, const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const wchar_t* OptimizationComp, const wchar_t* MetricComp, const wchar_t* PregenerationComp, Hlong* RootRanking)   (Nur Windows)

HTuple HComponentModel::CreateComponentModel(const HImage& ModelImage, const HRegion& ComponentRegions, const HTuple& VariationRow, const HTuple& VariationColumn, const HTuple& VariationAngle, double AngleStart, double AngleExtent, const HTuple& ContrastLowComp, const HTuple& ContrastHighComp, const HTuple& MinSizeComp, const HTuple& MinContrastComp, const HTuple& MinScoreComp, const HTuple& NumLevelsComp, const HTuple& AngleStepComp, const HString& OptimizationComp, const HTuple& MetricComp, const HTuple& PregenerationComp)

Hlong HComponentModel::CreateComponentModel(const HImage& ModelImage, const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const HString& OptimizationComp, const HString& MetricComp, const HString& PregenerationComp)

Hlong HComponentModel::CreateComponentModel(const HImage& ModelImage, const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const char* OptimizationComp, const char* MetricComp, const char* PregenerationComp)

Hlong HComponentModel::CreateComponentModel(const HImage& ModelImage, const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const wchar_t* OptimizationComp, const wchar_t* MetricComp, const wchar_t* PregenerationComp)   (Nur Windows)

HComponentModel HImage::CreateComponentModel(const HRegion& ComponentRegions, const HTuple& VariationRow, const HTuple& VariationColumn, const HTuple& VariationAngle, double AngleStart, double AngleExtent, const HTuple& ContrastLowComp, const HTuple& ContrastHighComp, const HTuple& MinSizeComp, const HTuple& MinContrastComp, const HTuple& MinScoreComp, const HTuple& NumLevelsComp, const HTuple& AngleStepComp, const HString& OptimizationComp, const HTuple& MetricComp, const HTuple& PregenerationComp, HTuple* RootRanking) const

HComponentModel HImage::CreateComponentModel(const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const HString& OptimizationComp, const HString& MetricComp, const HString& PregenerationComp, Hlong* RootRanking) const

HComponentModel HImage::CreateComponentModel(const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const char* OptimizationComp, const char* MetricComp, const char* PregenerationComp, Hlong* RootRanking) const

HComponentModel HImage::CreateComponentModel(const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const wchar_t* OptimizationComp, const wchar_t* MetricComp, const wchar_t* PregenerationComp, Hlong* RootRanking) const   (Nur Windows)

static void HOperatorSet.CreateComponentModel(HObject modelImage, HObject componentRegions, HTuple variationRow, HTuple variationColumn, HTuple variationAngle, HTuple angleStart, HTuple angleExtent, HTuple contrastLowComp, HTuple contrastHighComp, HTuple minSizeComp, HTuple minContrastComp, HTuple minScoreComp, HTuple numLevelsComp, HTuple angleStepComp, HTuple optimizationComp, HTuple metricComp, HTuple pregenerationComp, out HTuple componentModelID, out HTuple rootRanking)

public HComponentModel(HImage modelImage, HRegion componentRegions, HTuple variationRow, HTuple variationColumn, HTuple variationAngle, double angleStart, double angleExtent, HTuple contrastLowComp, HTuple contrastHighComp, HTuple minSizeComp, HTuple minContrastComp, HTuple minScoreComp, HTuple numLevelsComp, HTuple angleStepComp, string optimizationComp, HTuple metricComp, HTuple pregenerationComp, out HTuple rootRanking)

public HComponentModel(HImage modelImage, HRegion componentRegions, int variationRow, int variationColumn, double variationAngle, double angleStart, double angleExtent, int contrastLowComp, int contrastHighComp, int minSizeComp, int minContrastComp, double minScoreComp, int numLevelsComp, double angleStepComp, string optimizationComp, string metricComp, string pregenerationComp, out int rootRanking)

HTuple HComponentModel.CreateComponentModel(HImage modelImage, HRegion componentRegions, HTuple variationRow, HTuple variationColumn, HTuple variationAngle, double angleStart, double angleExtent, HTuple contrastLowComp, HTuple contrastHighComp, HTuple minSizeComp, HTuple minContrastComp, HTuple minScoreComp, HTuple numLevelsComp, HTuple angleStepComp, string optimizationComp, HTuple metricComp, HTuple pregenerationComp)

int HComponentModel.CreateComponentModel(HImage modelImage, HRegion componentRegions, int variationRow, int variationColumn, double variationAngle, double angleStart, double angleExtent, int contrastLowComp, int contrastHighComp, int minSizeComp, int minContrastComp, double minScoreComp, int numLevelsComp, double angleStepComp, string optimizationComp, string metricComp, string pregenerationComp)

HComponentModel HImage.CreateComponentModel(HRegion componentRegions, HTuple variationRow, HTuple variationColumn, HTuple variationAngle, double angleStart, double angleExtent, HTuple contrastLowComp, HTuple contrastHighComp, HTuple minSizeComp, HTuple minContrastComp, HTuple minScoreComp, HTuple numLevelsComp, HTuple angleStepComp, string optimizationComp, HTuple metricComp, HTuple pregenerationComp, out HTuple rootRanking)

HComponentModel HImage.CreateComponentModel(HRegion componentRegions, int variationRow, int variationColumn, double variationAngle, double angleStart, double angleExtent, int contrastLowComp, int contrastHighComp, int minSizeComp, int minContrastComp, double minScoreComp, int numLevelsComp, double angleStepComp, string optimizationComp, string metricComp, string pregenerationComp, out int rootRanking)

def create_component_model(model_image: HObject, component_regions: HObject, variation_row: MaybeSequence[int], variation_column: MaybeSequence[int], variation_angle: MaybeSequence[float], angle_start: float, angle_extent: float, contrast_low_comp: MaybeSequence[Union[int, str]], contrast_high_comp: MaybeSequence[Union[int, str]], min_size_comp: MaybeSequence[Union[int, str]], min_contrast_comp: MaybeSequence[Union[int, str]], min_score_comp: MaybeSequence[float], num_levels_comp: MaybeSequence[Union[int, str]], angle_step_comp: MaybeSequence[Union[float, str]], optimization_comp: str, metric_comp: MaybeSequence[str], pregeneration_comp: MaybeSequence[str]) -> Tuple[HHandle, Sequence[int]]

def create_component_model_s(model_image: HObject, component_regions: HObject, variation_row: MaybeSequence[int], variation_column: MaybeSequence[int], variation_angle: MaybeSequence[float], angle_start: float, angle_extent: float, contrast_low_comp: MaybeSequence[Union[int, str]], contrast_high_comp: MaybeSequence[Union[int, str]], min_size_comp: MaybeSequence[Union[int, str]], min_contrast_comp: MaybeSequence[Union[int, str]], min_score_comp: MaybeSequence[float], num_levels_comp: MaybeSequence[Union[int, str]], angle_step_comp: MaybeSequence[Union[float, str]], optimization_comp: str, metric_comp: MaybeSequence[str], pregeneration_comp: MaybeSequence[str]) -> Tuple[HHandle, int]

Beschreibung

create_component_modelcreate_component_modelCreateComponentModelCreateComponentModelCreateComponentModelcreate_component_model bereitet Muster, die in Form eines Modellbildes ModelImageModelImageModelImageModelImagemodelImagemodel_image und mehrerer Regionen ComponentRegionsComponentRegionsComponentRegionsComponentRegionscomponentRegionscomponent_regions übergeben werden, als Komponentenmodell für das Matching vor. Der Ausgabeparameter ComponentModelIDComponentModelIDComponentModelIDComponentModelIDcomponentModelIDcomponent_model_id ist ein Handle für dieses Modell, der in nachfolgenden Aufrufen von find_component_modelfind_component_modelFindComponentModelFindComponentModelFindComponentModelfind_component_model verwendet wird. Im Gegensatz zu create_trained_component_modelcreate_trained_component_modelCreateTrainedComponentModelCreateTrainedComponentModelCreateTrainedComponentModelcreate_trained_component_model ist ein mit train_model_componentstrain_model_componentsTrainModelComponentsTrainModelComponentsTrainModelComponentstrain_model_components durchgeführtes Training zum Aufruf von create_component_modelcreate_component_modelCreateComponentModelCreateComponentModelCreateComponentModelcreate_component_model nicht erforderlich.

Jede der in ComponentRegionsComponentRegionsComponentRegionsComponentRegionscomponentRegionscomponent_regions übergebenen Regionen beschreibt eine separate Modellkomponente. In nachfolgenden Operatoren wird der Index einer Komponenten in ComponentRegionsComponentRegionsComponentRegionsComponentRegionscomponentRegionscomponent_regions verwendet, um die Modellkomponente zu bezeichnen. Der Referenzpunkt einer Modellkomponente ist festgelegt durch den Schwerpunkt der in ComponentRegionsComponentRegionsComponentRegionsComponentRegionscomponentRegionscomponent_regions übergebenen Region und kann mit area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center ermittelt werden.

Die relativen Bewegungen (Relationen) zwischen den einzelnen Modellkomponenten können mit Hilfe der Parameter VariationRowVariationRowVariationRowVariationRowvariationRowvariation_row, VariationColumnVariationColumnVariationColumnVariationColumnvariationColumnvariation_column und VariationAngleVariationAngleVariationAngleVariationAnglevariationAnglevariation_angle festgelegt werden. Da eine direkte Angabe der Relationen sehr aufwendig ist, werden anstatt der Relationen die Variationen der Modellkomponenten übergeben. Die Variationen beschreiben die Bewegungen der Komponenten unabhängig voneinander relativ zu deren Lagen im Modellbild ModelImageModelImageModelImageModelImagemodelImagemodel_image. Dabei beschreiben die Parameter VariationRowVariationRowVariationRowVariationRowvariationRowvariation_row und VariationColumnVariationColumnVariationColumnVariationColumnvariationColumnvariation_column die Bewegung der Komponenten in Zeilen- und Spaltenrichtung um und . Der Parameter VariationAngleVariationAngleVariationAngleVariationAnglevariationAnglevariation_angle beschreibt die Winkelbewegung der Komponente um . Aus diesen Angaben werden die Relationen zwischen den Komponenten automatisch berechnet. Die drei Parameter müssen entweder genau ein Element enthalten oder dieselbe Anzahl von Elementen wie ComponentRegionsComponentRegionsComponentRegionsComponentRegionscomponentRegionscomponent_regions. Im ersten Fall wird der Wert des Eingabeparameters für alle Modellkomponenten gleich verwendet. Im zweiten Fall wird das jeweilige Element des Eingabeparameters für die entsprechende Modellkomponente in ComponentRegionsComponentRegionsComponentRegionsComponentRegionscomponentRegionscomponent_regions verwendet.

Die Parameter AngleStartAngleStartAngleStartAngleStartangleStartangle_start und AngleExtentAngleExtentAngleExtentAngleExtentangleExtentangle_extent legen den Winkelbereich für die möglichen Rotationen des Komponentenmodells im Bild fest.

Im Wesentlichen wird intern für jede Modellkomponente ein separates Formmodell erzeugt (siehe create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModelcreate_shape_model). Daher entsprechen die Parameter ContrastLowCompContrastLowCompContrastLowCompContrastLowCompcontrastLowCompcontrast_low_comp, ContrastHighCompContrastHighCompContrastHighCompContrastHighCompcontrastHighCompcontrast_high_comp, MinSizeCompMinSizeCompMinSizeCompMinSizeCompminSizeCompmin_size_comp, MinContrastCompMinContrastCompMinContrastCompMinContrastCompminContrastCompmin_contrast_comp, MinScoreCompMinScoreCompMinScoreCompMinScoreCompminScoreCompmin_score_comp, NumLevelsCompNumLevelsCompNumLevelsCompNumLevelsCompnumLevelsCompnum_levels_comp, AngleStepCompAngleStepCompAngleStepCompAngleStepCompangleStepCompangle_step_comp, OptimizationCompOptimizationCompOptimizationCompOptimizationCompoptimizationCompoptimization_comp, MetricCompMetricCompMetricCompMetricCompmetricCompmetric_comp und PregenerationCompPregenerationCompPregenerationCompPregenerationComppregenerationComppregeneration_comp den Parametern in create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModelcreate_shape_model mit folgenden Unterschieden: Im Parameter ContrastContrastContrastContrastcontrastcontrast von create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModelcreate_shape_model kann sowohl der obere, als auch der untere Schwellenwert für das Hysterese-Schwellenwert-Verfahren übergeben werden. Zusätzlich kann ein dritter Wert angegeben werden, der die Unterdrückung kleiner zusammenhängender Konturregionen ermöglicht. Der Operator create_component_modelcreate_component_modelCreateComponentModelCreateComponentModelCreateComponentModelcreate_component_model bietet dagegen zum Einstellen dieser drei Werte drei separate Parameter ContrastHighCompContrastHighCompContrastHighCompContrastHighCompcontrastHighCompcontrast_high_comp, ContrastLowCompContrastLowCompContrastLowCompContrastLowCompcontrastLowCompcontrast_low_comp und MinScoreCompMinScoreCompMinScoreCompMinScoreCompminScoreCompmin_score_comp. Daraus ergibt sich für die automatische Bestimmung der Kontrastwerte folgender Unterschied: Sollen beide Hysterese-Schwellen automatisch bestimmt werden, so müssen sowohl ContrastLowCompContrastLowCompContrastLowCompContrastLowCompcontrastLowCompcontrast_low_comp als auch ContrastHighCompContrastHighCompContrastHighCompContrastHighCompcontrastHighCompcontrast_high_comp jeweils auf 'auto'"auto""auto""auto""auto""auto" gesetzt werden. Soll dagegen lediglich ein Kontrastwert automatisch bestimmt werden, so muss ContrastLowCompContrastLowCompContrastLowCompContrastLowCompcontrastLowCompcontrast_low_comp auf 'auto'"auto""auto""auto""auto""auto" und ContrastHighCompContrastHighCompContrastHighCompContrastHighCompcontrastHighCompcontrast_high_comp auf einen beliebigen Wert ungleich 'auto'"auto""auto""auto""auto""auto" gesetzt werden. Im Parameter OptimizationOptimizationOptimizationOptimizationoptimizationoptimization von create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModelcreate_shape_model kann neben einer möglichen Reduktion der Modellpunkte auch entschieden werden, ob das Formmodell vollständig vorab generiert wird oder nicht. Der Operator create_trained_component_modelcreate_trained_component_modelCreateTrainedComponentModelCreateTrainedComponentModelCreateTrainedComponentModelcreate_trained_component_model bietet dagegen für die Vorabgenerierung der Formmodelle einen separaten Parameter PregenerationCompPregenerationCompPregenerationCompPregenerationComppregenerationComppregeneration_comp. Ein dritter Unterschied bezieht sich auf den Parameter MinScoreCompMinScoreCompMinScoreCompMinScoreCompminScoreCompmin_score_comp, der beim formbasierten Matching nicht bereits beim Vorbereiten des Modells mit create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModelcreate_shape_model sondern erst bei der Suche mit find_shape_modelfind_shape_modelFindShapeModelFindShapeModelFindShapeModelfind_shape_model übergeben wird. Beim Vorbereiten des Komponentenmodells ist es jedoch vorteilhaft, auftretende Rotationssymmetrien der Modellkomponenten und Ähnlichkeiten zwischen den Modellkomponenten zu analysieren und beim Aufbau des Komponentenmodells zu berücksichtigen. Diese Analyse kann jedoch nur dann zu sinnvollen Ergebnissen führen, wenn der zur Suche verwendete Wert für MinScoreCompMinScoreCompMinScoreCompMinScoreCompminScoreCompmin_score_comp (siehe find_component_modelfind_component_modelFindComponentModelFindComponentModelFindComponentModelfind_component_model) bereits annähernd bekannt ist.

Neben den Parametern ContrastLowCompContrastLowCompContrastLowCompContrastLowCompcontrastLowCompcontrast_low_comp, ContrastHighCompContrastHighCompContrastHighCompContrastHighCompcontrastHighCompcontrast_high_comp und MinSizeCompMinSizeCompMinSizeCompMinSizeCompminSizeCompmin_size_comp können auch die Parameter MinContrastCompMinContrastCompMinContrastCompMinContrastCompminContrastCompmin_contrast_comp, NumLevelsCompNumLevelsCompNumLevelsCompNumLevelsCompnumLevelsCompnum_levels_comp, AngleStepCompAngleStepCompAngleStepCompAngleStepCompangleStepCompangle_step_comp und OptimizationCompOptimizationCompOptimizationCompOptimizationCompoptimizationCompoptimization_comp jeweils durch die Angabe von 'auto'"auto""auto""auto""auto""auto" automatisch ermittelt werden.

Alle komponentenspezifischen Eingabeparameter (Parameternamen enden jeweils auf Comp) müssen entweder genau ein Element enthalten oder dieselbe Anzahl von Elementen wie ComponentRegionsComponentRegionsComponentRegionsComponentRegionscomponentRegionscomponent_regions. Im ersten Fall wird der Wert des Eingabeparameters für alle Modellkomponenten gleich verwendet. Im zweiten Fall wird das jeweilige Element des Eingabeparameters für die entsprechende Modellkomponente in ComponentRegionsComponentRegionsComponentRegionsComponentRegionscomponentRegionscomponent_regions verwendet.

Das Komponentenmodell enthält neben den einzelnen Formmodellen auch die Information über die Art und Weise, wie die einzelnen Modellkomponenten mit find_component_modelfind_component_modelFindComponentModelFindComponentModelFindComponentModelfind_component_model relativ zueinander gesucht werden müssen, damit die Rechenzeit während der Suche minimal ist. Dabei werden die Komponenten durch eine Baumstruktur repräsentiert. Zunächst wird die Komponente, die an der Wurzel des Baumes (Wurzelkomponente) steht, gesucht. Anschließend werden die übrigen Komponenten jeweils relativ zur Lage ihres Vorgängers im Baum gesucht.

Die Wurzelkomponente kann bei der Suche mit find_component_modelfind_component_modelFindComponentModelFindComponentModelFindComponentModelfind_component_model als Parameter übergeben werden. Inwiefern sich eine Modellkomponente als Wurzelkomponente eignet, hängt von verschiedenen Faktoren ab. Prinzipiell sollte eine Modellkomponente gewählt werden, die mit hoher Wahrscheinlichkeit im Bild wiedergefunden werden kann. Eine im Bild stark verdeckte oder fehlende Komponente eignet sind daher nur bedingt als Wurzelkomponente. Auch die mit der Wurzelkomponente verbundene Rechenzeit während der Suche kann als Auswahlkriterium herangezogen werden. Eine nach diesem Kriterium sortierte Rangfolge der Modellkomponenten wird im Parameter RootRankingRootRankingRootRankingRootRankingrootRankingroot_ranking zurückgeliefert. In diesem Parameter sind die Indizes der Modellkomponenten nach der mit ihnen verbundenen Suchzeit aufsteigend sortiert, d.h. RootRankingRootRankingRootRankingRootRankingrootRankingroot_ranking[0] enthält den Index der Modellkomponente, die - als Wurzelkomponente gewählt - die schnellste Suche ermöglicht. Die in RootRankingRootRankingRootRankingRootRankingrootRankingroot_ranking ermittelte Reihenfolge stellt jedoch nur eine grobe Abschätzung dar. Die Abschätzung setzt außerdem voraus, dass sowohl die Bildgröße als auch der Wert des Systemparameters 'border_shape_models'"border_shape_models""border_shape_models""border_shape_models""border_shape_models""border_shape_models" beim Aufruf von create_component_modelcreate_component_modelCreateComponentModelCreateComponentModelCreateComponentModelcreate_component_model und find_component_modelfind_component_modelFindComponentModelFindComponentModelFindComponentModelfind_component_model identisch sind.

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.

Parameter

ModelImageModelImageModelImageModelImagemodelImagemodel_image (input_object)  (multichannel-)image objectHImageHObjectHImageHobject (byte / uint2)

Eingabebild, aus dem die Formmodelle für die Modellkomponenten generiert werden sollen.

ComponentRegionsComponentRegionsComponentRegionsComponentRegionscomponentRegionscomponent_regions (input_object)  region-array objectHRegionHObjectHRegionHobject

Eingaberegionen, aus denen die Formmodelle für die Modellkomponenten generiert werden sollen.

VariationRowVariationRowVariationRowVariationRowvariationRowvariation_row (input_control)  integer(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Variation der Modellkomponenten in Zeilenrichtung.

Wertevorschläge: 0, 1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 100, 150

Restriktion: VariationRow >= 0

VariationColumnVariationColumnVariationColumnVariationColumnvariationColumnvariation_column (input_control)  integer(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Variation der Modellkomponenten in Spaltenrichtung.

Wertevorschläge: 0, 1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 100, 150

Restriktion: VariationColumn >= 0

VariationAngleVariationAngleVariationAngleVariationAnglevariationAnglevariation_angle (input_control)  angle.rad(-array) HTupleMaybeSequence[float]HTupleHtuple (real) (double) (double) (double)

Winkel-Variation der Modellkomponenten.

Wertevorschläge: 0.0, 0.017, 0.035, 0.05, 0.07, 0.09, 0.17, 0.35, 0.52, 0.67, 0.87

Restriktion: VariationAngle >= 0

AngleStartAngleStartAngleStartAngleStartangleStartangle_start (input_control)  angle.rad HTuplefloatHTupleHtuple (real) (double) (double) (double)

Kleinste auftretende Rotation des Komponentenmodells.

Defaultwert: -0.39

Wertevorschläge: -3.14, -1.57, -0.79, -0.39, -0.20, 0.0

AngleExtentAngleExtentAngleExtentAngleExtentangleExtentangle_extent (input_control)  angle.rad HTuplefloatHTupleHtuple (real) (double) (double) (double)

Ausdehnung des Winkelbereichs des Komponentenmodells.

Defaultwert: 0.79

Wertevorschläge: 6.28, 3.14, 1.57, 0.79, 0.39

Restriktion: AngleExtent >= 0

ContrastLowCompContrastLowCompContrastLowCompContrastLowCompcontrastLowCompcontrast_low_comp (input_control)  integer(-array) HTupleMaybeSequence[Union[int, str]]HTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Unterer Hystereseschwellenwert für den Kontrast der Komponenten im Modellbild.

Defaultwert: 'auto' "auto" "auto" "auto" "auto" "auto"

Wertevorschläge: 'auto'"auto""auto""auto""auto""auto", 10, 20, 30, 40, 60, 80, 100, 120, 140, 160

Restriktion: ContrastLowComp > 0

ContrastHighCompContrastHighCompContrastHighCompContrastHighCompcontrastHighCompcontrast_high_comp (input_control)  integer(-array) HTupleMaybeSequence[Union[int, str]]HTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Oberer Hystereseschwellenwert für den Kontrast der Komponenten im Modellbild.

Defaultwert: 'auto' "auto" "auto" "auto" "auto" "auto"

Wertevorschläge: 'auto'"auto""auto""auto""auto""auto", 10, 20, 30, 40, 60, 80, 100, 120, 140, 160

Restriktion: ContrastHighComp > 0 && ContrastHighComp >= ContrastLowComp

MinSizeCompMinSizeCompMinSizeCompMinSizeCompminSizeCompmin_size_comp (input_control)  integer(-array) HTupleMaybeSequence[Union[int, str]]HTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Mindestgröße der Konturregionen im Modell.

Defaultwert: 'auto' "auto" "auto" "auto" "auto" "auto"

Wertevorschläge: 'auto'"auto""auto""auto""auto""auto", 0, 5, 10, 20, 30, 40

Restriktion: MinSizeComp >= 0

MinContrastCompMinContrastCompMinContrastCompMinContrastCompminContrastCompmin_contrast_comp (input_control)  integer(-array) HTupleMaybeSequence[Union[int, str]]HTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Minimaler Kontrast der Komponenten in den Suchbildern.

Defaultwert: 'auto' "auto" "auto" "auto" "auto" "auto"

Wertevorschläge: 'auto'"auto""auto""auto""auto""auto", 10, 20, 20, 40

Restriktion: MinContrastComp <= ContrastLowComp && MinContrastComp >= 0

MinScoreCompMinScoreCompMinScoreCompMinScoreCompminScoreCompmin_score_comp (input_control)  real(-array) HTupleMaybeSequence[float]HTupleHtuple (real) (double) (double) (double)

Minimale Bewertung der zu findenden Instanzen der Komponenten.

Defaultwert: 0.5

Wertevorschläge: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.05

Restriktion: 0 <= MinScoreComp && MinScoreComp <= 1

NumLevelsCompNumLevelsCompNumLevelsCompNumLevelsCompnumLevelsCompnum_levels_comp (input_control)  integer(-array) HTupleMaybeSequence[Union[int, str]]HTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Maximale Anzahl von Pyramidenebenen für die Komponenten.

Defaultwert: 'auto' "auto" "auto" "auto" "auto" "auto"

Werteliste: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'auto'"auto""auto""auto""auto""auto"

AngleStepCompAngleStepCompAngleStepCompAngleStepCompangleStepCompangle_step_comp (input_control)  angle.rad(-array) HTupleMaybeSequence[Union[float, str]]HTupleHtuple (real / string) (double / string) (double / HString) (double / char*)

Schrittweite der Winkel (Auflösung) für die Komponenten.

Defaultwert: 'auto' "auto" "auto" "auto" "auto" "auto"

Wertevorschläge: 'auto'"auto""auto""auto""auto""auto", 0.0175, 0.0349, 0.0524, 0.0698, 0.0873

Restriktion: AngleStepComp >= 0

OptimizationCompOptimizationCompOptimizationCompOptimizationCompoptimizationCompoptimization_comp (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Art der Optimierung für die Komponenten.

Defaultwert: 'auto' "auto" "auto" "auto" "auto" "auto"

Werteliste: 'auto'"auto""auto""auto""auto""auto", 'none'"none""none""none""none""none", 'point_reduction_high'"point_reduction_high""point_reduction_high""point_reduction_high""point_reduction_high""point_reduction_high", 'point_reduction_low'"point_reduction_low""point_reduction_low""point_reduction_low""point_reduction_low""point_reduction_low", 'point_reduction_medium'"point_reduction_medium""point_reduction_medium""point_reduction_medium""point_reduction_medium""point_reduction_medium"

MetricCompMetricCompMetricCompMetricCompmetricCompmetric_comp (input_control)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Art der zum Matchen der Komponenten verwendeten Metrik.

Defaultwert: 'use_polarity' "use_polarity" "use_polarity" "use_polarity" "use_polarity" "use_polarity"

Werteliste: 'ignore_color_polarity'"ignore_color_polarity""ignore_color_polarity""ignore_color_polarity""ignore_color_polarity""ignore_color_polarity", 'ignore_global_polarity'"ignore_global_polarity""ignore_global_polarity""ignore_global_polarity""ignore_global_polarity""ignore_global_polarity", 'ignore_local_polarity'"ignore_local_polarity""ignore_local_polarity""ignore_local_polarity""ignore_local_polarity""ignore_local_polarity", 'use_polarity'"use_polarity""use_polarity""use_polarity""use_polarity""use_polarity"

PregenerationCompPregenerationCompPregenerationCompPregenerationComppregenerationComppregeneration_comp (input_control)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Komplette Vorabgenerierung der Formmodelle für die Komponenten falls 'true'"true""true""true""true""true".

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

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

ComponentModelIDComponentModelIDComponentModelIDComponentModelIDcomponentModelIDcomponent_model_id (output_control)  component_model HComponentModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Komponentenmodells.

RootRankingRootRankingRootRankingRootRankingrootRankingroot_ranking (output_control)  integer(-array) HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Reihenfolge der Modellkomponenten, die deren Eignung als Wurzelkomponente zu fungieren ausdrückt.

Beispiel (HDevelop)

* Read the model image.
read_image (ModelImage, 'model_image.tif')
* Describe the model components.
gen_rectangle2 (ComponentRegions, 318, 109, -1.62, 34, 19)
gen_rectangle2 (Rectangle2, 342, 238, -1.63, 32, 17)
gen_rectangle2 (Rectangle3, 355, 505, 1.41, 25, 17)
concat_obj (ComponentRegions, Rectangle2, ComponentRegions)
concat_obj (ComponentRegions, Rectangle3, ComponentRegions)
* Create the component model by explicitly specifying the relations.
create_component_model (ModelImage, ComponentRegions, 20, 20, rad(25), 0, \
                        rad(360), 15, 40, 15, 10, 0.8, 'auto', 'auto', \
                        'none', 'use_polarity', 'false', ComponentModelID, \
                        RootRanking)
* 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', \
                      'search_from_best', 'none', 0.8, 'least_squares', 0, \
                      0.8, ModelStart, ModelEnd, Score, RowComp, \
                      ColumnComp, AngleComp, ScoreComp, ModelComp)

Ergebnis

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

Vorgänger

draw_regiondraw_regionDrawRegionDrawRegionDrawRegiondraw_region, concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj

Nachfolger

find_component_modelfind_component_modelFindComponentModelFindComponentModelFindComponentModelfind_component_model

Alternativen

create_trained_component_modelcreate_trained_component_modelCreateTrainedComponentModelCreateTrainedComponentModelCreateTrainedComponentModelcreate_trained_component_model

Modul

Matching