create_planar_uncalib_deformable_modelT_create_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel (Operator)

Name

create_planar_uncalib_deformable_modelT_create_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel — Erzeugt ein deformierbares Modell für unkalibriertes, planares Matching.

Signatur

create_planar_uncalib_deformable_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, ScaleRMin, ScaleRMax, ScaleRStep, ScaleCMin, ScaleCMax, ScaleCStep, Optimization, Metric, Contrast, MinContrast, GenParamName, GenParamValue : ModelID)

Herror T_create_planar_uncalib_deformable_model(const Hobject Template, const Htuple NumLevels, const Htuple AngleStart, const Htuple AngleExtent, const Htuple AngleStep, const Htuple ScaleRMin, const Htuple ScaleRMax, const Htuple ScaleRStep, const Htuple ScaleCMin, const Htuple ScaleCMax, const Htuple ScaleCStep, const Htuple Optimization, const Htuple Metric, const Htuple Contrast, const Htuple MinContrast, const Htuple GenParamName, const Htuple GenParamValue, Htuple* ModelID)

void CreatePlanarUncalibDeformableModel(const HObject& Template, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AngleStep, const HTuple& ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleRStep, const HTuple& ScaleCMin, const HTuple& ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HTuple& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* ModelID)

void HDeformableModel::HDeformableModel(const HImage& Template, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AngleStep, double ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDeformableModel::HDeformableModel(const HImage& Template, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDeformableModel::HDeformableModel(const HImage& Template, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDeformableModel::HDeformableModel(const HImage& Template, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const wchar_t* Optimization, const wchar_t* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue)   (Nur Windows)

void HDeformableModel::CreatePlanarUncalibDeformableModel(const HImage& Template, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AngleStep, double ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDeformableModel::CreatePlanarUncalibDeformableModel(const HImage& Template, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDeformableModel::CreatePlanarUncalibDeformableModel(const HImage& Template, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDeformableModel::CreatePlanarUncalibDeformableModel(const HImage& Template, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const wchar_t* Optimization, const wchar_t* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue)   (Nur Windows)

HDeformableModel HImage::CreatePlanarUncalibDeformableModel(const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AngleStep, double ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const

HDeformableModel HImage::CreatePlanarUncalibDeformableModel(Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const

HDeformableModel HImage::CreatePlanarUncalibDeformableModel(Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const

HDeformableModel HImage::CreatePlanarUncalibDeformableModel(Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const wchar_t* Optimization, const wchar_t* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const   (Nur Windows)

static void HOperatorSet.CreatePlanarUncalibDeformableModel(HObject template, HTuple numLevels, HTuple angleStart, HTuple angleExtent, HTuple angleStep, HTuple scaleRMin, HTuple scaleRMax, HTuple scaleRStep, HTuple scaleCMin, HTuple scaleCMax, HTuple scaleCStep, HTuple optimization, HTuple metric, HTuple contrast, HTuple minContrast, HTuple genParamName, HTuple genParamValue, out HTuple modelID)

public HDeformableModel(HImage template, HTuple numLevels, HTuple angleStart, HTuple angleExtent, HTuple angleStep, double scaleRMin, HTuple scaleRMax, HTuple scaleRStep, double scaleCMin, HTuple scaleCMax, HTuple scaleCStep, HTuple optimization, string metric, HTuple contrast, HTuple minContrast, HTuple genParamName, HTuple genParamValue)

public HDeformableModel(HImage template, int numLevels, HTuple angleStart, HTuple angleExtent, double angleStep, double scaleRMin, HTuple scaleRMax, double scaleRStep, double scaleCMin, HTuple scaleCMax, double scaleCStep, string optimization, string metric, HTuple contrast, int minContrast, HTuple genParamName, HTuple genParamValue)

void HDeformableModel.CreatePlanarUncalibDeformableModel(HImage template, HTuple numLevels, HTuple angleStart, HTuple angleExtent, HTuple angleStep, double scaleRMin, HTuple scaleRMax, HTuple scaleRStep, double scaleCMin, HTuple scaleCMax, HTuple scaleCStep, HTuple optimization, string metric, HTuple contrast, HTuple minContrast, HTuple genParamName, HTuple genParamValue)

void HDeformableModel.CreatePlanarUncalibDeformableModel(HImage template, int numLevels, HTuple angleStart, HTuple angleExtent, double angleStep, double scaleRMin, HTuple scaleRMax, double scaleRStep, double scaleCMin, HTuple scaleCMax, double scaleCStep, string optimization, string metric, HTuple contrast, int minContrast, HTuple genParamName, HTuple genParamValue)

HDeformableModel HImage.CreatePlanarUncalibDeformableModel(HTuple numLevels, HTuple angleStart, HTuple angleExtent, HTuple angleStep, double scaleRMin, HTuple scaleRMax, HTuple scaleRStep, double scaleCMin, HTuple scaleCMax, HTuple scaleCStep, HTuple optimization, string metric, HTuple contrast, HTuple minContrast, HTuple genParamName, HTuple genParamValue)

HDeformableModel HImage.CreatePlanarUncalibDeformableModel(int numLevels, HTuple angleStart, HTuple angleExtent, double angleStep, double scaleRMin, HTuple scaleRMax, double scaleRStep, double scaleCMin, HTuple scaleCMax, double scaleCStep, string optimization, string metric, HTuple contrast, int minContrast, HTuple genParamName, HTuple genParamValue)

Beschreibung

Der Operator create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel bereitet ein Muster, das als Bild TemplateTemplateTemplateTemplatetemplate übergeben wird, als deformierbares Modell für das Matching vor. Die ROI des Modells wird als der Definitionsbereich von TemplateTemplateTemplateTemplatetemplate übergeben.

Das planare, unkalibrierte Matching kann zum Erkennen von planaren Objekten oder planaren Teilen von nicht-planaren Objekten, die durch eine projektive Ansicht verzerrt wurden, verwendet werden.

Dies ist eine Alternative zu create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModel, create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel und create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel, bei denen typischerweise das Suchbild mit Hilfe von calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras und gen_image_to_world_plane_mapgen_image_to_world_plane_mapGenImageToWorldPlaneMapGenImageToWorldPlaneMapGenImageToWorldPlaneMap vorher entzerrt werden muss.

Im Gegensatz zu create_shape_model_3dcreate_shape_model_3dCreateShapeModel3dCreateShapeModel3dCreateShapeModel3d werden vorab keine Ansichten des Objektes generiert, was zu einem kleineren Speicherverbrauch führt. Deshalb sollte in dem Fall eines planaren, perspektivisch verzerrten Objektes create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel vorgezogen werden.

Das Modell wird auf mehreren Pyramidenebenen generiert und im Speicher abgelegt. Der Ausgabeparameter ModelIDModelIDModelIDModelIDmodelID ist ein Handle für dieses Modell, der in nachfolgenden Aufrufen von find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel verwendet wird.

Als Ursprung (Referenzpunkt) des Modells wird der Schwerpunkt der Region des Modellbildes TemplateTemplateTemplateTemplatetemplate verwendet. Falls ein anderer Ursprung gewünscht wird, kann dieser mit set_deformable_model_originset_deformable_model_originSetDeformableModelOriginSetDeformableModelOriginSetDeformableModelOrigin gesetzt werden.

Eingabeparameter im Detail

NumLevels:

Die Anzahl der Pyramidenebenen wird mit NumLevelsNumLevelsNumLevelsNumLevelsnumLevels festgelegt. Sie sollte so groß wie möglich gewählt werden, da hierdurch das Auffinden des Modells erheblich beschleunigt wird. Bei der Wahl von NumLevelsNumLevelsNumLevelsNumLevelsnumLevels ist aber darauf zu achten, dass das Modell auf der obersten Pyramidenstufe noch erkennbar ist und genügend viele Punkte besitzt. Falls nicht genügend Modellpunkte erzeugt werden, wird die Anzahl der Pyramidenstufen intern solange reduziert, bis auf der obersten Pyramidenstufe genügend Modellpunkte vorhanden sind. Falls durch diese Anpassung ein Modell mit 0 Pyramidenstufen entstehen würde, d.h. falls schon auf der untersten Pyramidenstufe zu wenige Modellpunkte vorhanden sind, liefert create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel eine Fehlermeldung zurück. Falls für NumLevelsNumLevelsNumLevelsNumLevelsnumLevels 'auto'"auto""auto""auto""auto" übergeben wird, wählt create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel die Anzahl der Pyramidenstufen automatisch. Die automatisch gewählte Anzahl von Pyramidenstufen kann mit get_deformable_model_paramsget_deformable_model_paramsGetDeformableModelParamsGetDeformableModelParamsGetDeformableModelParams abgefragt werden. In seltenen Fällen kann es vorkommen, dass create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel die Anzahl der Pyramidenstufen zu hoch oder zu niedrig bestimmt. Falls die Anzahl der Pyramidenstufen zu hoch gewählt wird, kann das dazu führen, dass das Modell im Bild nicht erkannt wird oder dass sehr niedrige Parameter für MinScore oder Greediness in find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel selektiert werden müssen, damit das Modell gefunden wird. Falls die Anzahl der Pyramidenstufen zu niedrig gewählt wird, kann es zu erhöhten Laufzeiten in find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel kommen. In diesen Fällen sollte die Anzahl der Pyramidenstufen mit Hilfe der Ausgabe von inspect_shape_modelinspect_shape_modelInspectShapeModelInspectShapeModelInspectShapeModel gewählt werden.

Winkel- und Skalierungs-Parameter:

Beachten Sie, dass die AngleStartAngleStartAngleStartAngleStartangleStart, AngleExtentAngleExtentAngleExtentAngleExtentangleExtent, ScaleRMaxScaleRMaxScaleRMaxScaleRMaxscaleRMax und ScaleCMaxScaleCMaxScaleCMaxScaleCMaxscaleCMax nicht von diesem Operator genutzt werden. Stattdessen müssen sie in dem Operator find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel spezifiziert werden. ScaleRMinScaleRMinScaleRMinScaleRMinscaleRMin und ScaleCMinScaleCMinScaleCMinScaleCMinscaleCMin können relevant sein, wenn Matches erwartet werden, die kleiner sind als im Bild TemplateTemplateTemplateTemplatetemplate. Dann verringert sich eventuell die Anzahl der benutzten Pyramidenebenen, falls für NumLevelsNumLevelsNumLevelsNumLevelsnumLevels 'auto'"auto""auto""auto""auto" übergeben wird.

Im Normalfall können die Parameter AngleStepAngleStepAngleStepAngleStepangleStep, ScaleRStepScaleRStepScaleRStepScaleRStepscaleRStep und ScaleCStepScaleCStepScaleCStepScaleCStepscaleCStep automatisch bestimmt werden - die berechneten Winkel- und Skalierungsschrittweiten können mit get_deformable_model_paramsget_deformable_model_paramsGetDeformableModelParamsGetDeformableModelParamsGetDeformableModelParams ausgegeben werden. Mehr Informationen dazu, wie sich diese Parameter auswirken, können in der Dokumentation von find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel gefunden werden.

Optimization:

Bei besonders großen Modellen kann es sinnvoll sein, die Anzahl der Modellpunkte durch Setzen des Parameters OptimizationOptimizationOptimizationOptimizationoptimization auf einen Wert ungleich 'none'"none""none""none""none" zu setzen. Falls OptimizationOptimizationOptimizationOptimizationoptimization = 'none'"none""none""none""none", werden alle Modellpunkte abgespeichert. Ansonsten wird die Anzahl der Punkte entsprechend dem Parameter OptimizationOptimizationOptimizationOptimizationoptimization reduziert. Falls die Anzahl der Punkte reduziert wird, kann es bei find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel notwendig werden, den Parameter Greediness auf einen kleineren Wert, z.B. 0.7 oder 0.8, zu setzen. Bei kleineren Modellen bewirkt die Reduktion der Anzahl der Punkte keine Beschleunigung, da dadurch typischerweise wesentlich mehr potentielle Instanzen des Modells untersucht werden müssen. Falls für OptimizationOptimizationOptimizationOptimizationoptimization 'auto'"auto""auto""auto""auto" übergeben wird, wählt create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel die Reduktion der Punkte automatisch.

Contrast:

Der Parameter ContrastContrastContrastContrastcontrast legt fest, welchen Grauwertkontrast die Punkte des Modells besitzen müssen. Der Kontrast ist ein Maß für die lokalen Grauwertdifferenzen zwischen dem Objekt und dem Hintergrund und zwischen verschiedenen Teilen des Objektes. ContrastContrastContrastContrastcontrast sollte so gewählt werden, dass nur die signifikanten Merkmale des Musters für das Modell verwendet werden. ContrastContrastContrastContrastcontrast kann auch ein Tupel mit zwei Werten enthalten. In diesem Fall wird bei der Segmentierung des Modells ein Verfahren eingesetzt, das ähnlich zum Hysterese-Schwellwert-Verfahren in edges_imageedges_imageEdgesImageEdgesImageEdgesImage ist. Dabei ist der erste Wert des Tupels der untere Schwellwert und der zweite Wert der obere Schwellwert. Für weitere Informationen über das Hysterese-Schwellwert-Verfahren siehe hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThreshold. Wird ContrastContrastContrastContrastcontrast auf 'auto'"auto""auto""auto""auto" gesetzt, dann bestimmt create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel die beschriebenen Werte automatisch. Daneben besteht die Möglichkeit, nur den Kontrast ('auto_contrast'"auto_contrast""auto_contrast""auto_contrast""auto_contrast") oder die Hysterese-Schwellwerte ('auto_contrast_hyst'"auto_contrast_hyst""auto_contrast_hyst""auto_contrast_hyst""auto_contrast_hyst") automatisch bestimmen zu lassen. Die übrigen, nicht automatisch zu bestimmenden Größen, können dann zusätzlich als Tupel übergeben werden. In bestimmten Fällen kann es vorkommen, dass die automatische Bestimmung der Kontrast-Schwellwerte nicht zum gewünschten Ergebnis führt. So ist eine manuelle Parameterwahl zu bevorzugen, wenn anwendungsbedingt bestimmte Modellkomponenten ausgeschlossen oder ins Modell integriert werden sollen oder wenn das Objekt mehrere unterschiedliche Kontraststufen umfasst. Daher ist es sinnvoll, die Kontrastwerte vor der Modellgenerierung mit determine_deformable_model_paramsdetermine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParamsDetermineDeformableModelParams automatisch zu ermitteln und das Ergebnis mit inspect_shape_modelinspect_shape_modelInspectShapeModelInspectShapeModelInspectShapeModel zu überprüfen. Es ist zu beachten, dass MinContrastMinContrastMinContrastMinContrastminContrast die Bestimmung der Kontrast-Schwellwerte beeinflusst, und daher auch die Schätzung der Mindestgröße.

MinContrast:

Mit MinContrastMinContrastMinContrastMinContrastminContrast wird festgelegt, welchen Grauwertkontrast im Bild das Modell später bei der Erkennung mit find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel mindestens besitzen muss. Mit anderen Worten stellt dieser Parameter eine Abgrenzung des Musters vom Rauschen im Bild dar. Ein guter Wert entspricht deshalb dem Bereich der Grauwertänderungen, die durch das Rauschen im Bild verursacht werden. Falls die Grauwerte z.B. in einem Bereich von 10 Graustufen durch Rauschen schwanken, sollte MinContrastMinContrastMinContrastMinContrastminContrast auf 10 gesetzt werden. Offensichtlich muss MinContrastMinContrastMinContrastMinContrastminContrast kleiner als ContrastContrastContrastContrastcontrast sein. Falls das Modell später in sehr kontrastarmen Bildern erkannt werden soll, muss MinContrastMinContrastMinContrastMinContrastminContrast entsprechend klein gewählt werden. Falls das Modell mit erheblichen Verdeckungen erkannt werden soll, sollte MinContrastMinContrastMinContrastMinContrastminContrast etwas größer als der Grauwertbereich, der durch das Rauschen verursacht wird, gewählt werden, um eine robuste und genaue Lageschätzung des verdeckten Modells mit find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel zu gewährleisten.

Wird MinContrastMinContrastMinContrastMinContrastminContrast auf 'auto'"auto""auto""auto""auto" gesetzt, wählt create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel den Mindestkontrast basierend auf dem Rauschen im Modellbild automatisch. Eine automatische Bestimmung ergibt demzufolge nur Sinn, wenn das bei der Erkennung zu erwartende Bildrauschen dem Rauschen im Modellbild entspricht. Außerdem kann es in manchen Fällen sinnvoll sein, den automatisch ermittelten Wert zu erhöhen, um eine höhere Robustheit gegenüber Verdeckungen zu erzielen (siehe oben). Der automatisch bestimmte Mindestkontrast kann mit get_deformable_model_paramsget_deformable_model_paramsGetDeformableModelParamsGetDeformableModelParamsGetDeformableModelParams abgefragt werden. Der MinContrastMinContrastMinContrastMinContrastminContrast eines deformierbaren Modells kann später mit set_deformable_model_paramset_deformable_model_paramSetDeformableModelParamSetDeformableModelParamSetDeformableModelParam noch geändert werden.

Metric:

Der Parameter MetricMetricMetricMetricmetric legt fest, unter welchen Bedingungen das Muster im Bild noch erkannt wird. Falls MetricMetricMetricMetricmetric = 'use_polarity'"use_polarity""use_polarity""use_polarity""use_polarity", muss das Objekt im Bild dieselben Kontrasteigenschaften aufweisen wie das Modell. Wenn z.B. das Modell ein helles Objekt auf dunklem Hintergrund ist, wird das Objekt im Bild nur dann gefunden, wenn es auch heller als der Hintergrund ist. Falls MetricMetricMetricMetricmetric = 'ignore_global_polarity'"ignore_global_polarity""ignore_global_polarity""ignore_global_polarity""ignore_global_polarity", wird das Objekt auch dann im Bild gefunden, wenn sich der Kontrast global umkehrt. Im obigen Beispiel würde das Objekt also auch dann gefunden, wenn es dunkler als der Hintergrund ist. Die Laufzeit von find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel erhöht sich in diesem Fall geringfügig.

Falls MetricMetricMetricMetricmetric = 'ignore_part_polarity'"ignore_part_polarity""ignore_part_polarity""ignore_part_polarity""ignore_part_polarity" ausgewählt wird, dann darf sich die Kontrastpolarität nur zwischen verschiedenen Modellteilen ändern, wohingegen die Polarität von Modellpunkten innerhalb desselben Modellteils nicht wechseln darf. Zu beachten ist, dass der Begriff 'ignore_part_polarity'"ignore_part_polarity""ignore_part_polarity""ignore_part_polarity""ignore_part_polarity" missverstanden werden kann. Er bedeutet, dass Polaritätswechsel zwischen benachbarten Modellteilen den Score nicht beeinflussen und daher ignoriert werden.

Falls MetricMetricMetricMetricmetric = 'ignore_local_polarity'"ignore_local_polarity""ignore_local_polarity""ignore_local_polarity""ignore_local_polarity", wird das Modell auch dann gefunden, wenn sich die Kontrastverhältnisse lokal ändern. Dieser Modus kann z.B. dann sinnvoll sein, wenn das Objekt aus einem Teil mittleren Grauwerts besteht, auf dem entweder dunkle oder helle Unterobjekte liegen können. In diesem Fall erhöht sich die Laufzeit von find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel aber wesentlich. Die obigen vier Metriken können nur auf einkanalige Bilder angewendet werden. Falls im Modellbild oder in den Suchbildern ein mehrkanaliges Bild übergeben wird, wird stillschweigend nur der erste Kanal des Bildes verwendet. Im Falle von MetricMetricMetricMetricmetric = 'ignore_color_polarity'"ignore_color_polarity""ignore_color_polarity""ignore_color_polarity""ignore_color_polarity" wird das Modell auch dann gefunden, wenn sich die Farbkontraste lokal ändern. Dies ist z.B. der Fall, wenn Teile des Objektes ihre Farbe ändern können, z.B. von rot auf grün. Dieser Modus ist insbesondere dann sinnvoll, wenn nicht vorab bekannt ist, in welchen Kanälen das Objekt zu erkennen ist. Auch hier kann sich die Laufzeit von find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel erheblich erhöhen. Die Metrik 'ignore_color_polarity'"ignore_color_polarity""ignore_color_polarity""ignore_color_polarity""ignore_color_polarity" kann auf Bilder mit einer beliebigen Anzahl von Kanälen angewendet werden. Falls sie mit einkanaligen Bildern verwendet wird, hat sie dieselbe Wirkung wie 'ignore_local_polarity'"ignore_local_polarity""ignore_local_polarity""ignore_local_polarity""ignore_local_polarity". Es ist zu beachten, dass für MetricMetricMetricMetricmetric = 'ignore_color_polarity'"ignore_color_polarity""ignore_color_polarity""ignore_color_polarity""ignore_color_polarity" die Anzahl der Kanäle bei der Modellgenerierung mit create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel und bei der Suche mit find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel verschieden sein können. Dies erlaubt z.B. die Modellgenerierung aus einem einkanaligen synthetisch generierten Bild. Es ist auch zu beachten, dass die Kanäle nicht einer spektralen Unterteilung des Lichtes (wie z.B. bei einem RGB-Bild) entsprechen müssen. Die Kanäle können z.B. auch durch Beleuchtung des Objektes aus unterschiedlichen Richtungen entstanden sein.

GenParamName, GenParamValue:

Mit Hilfe der generischen Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamName und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue kann der Benutzer Parameter eines deformierbaren Modells setzen, die nur in seltenen Fällen benötigt werden. Zur Zeit wird es dazu verwendet, die durchschnittliche Größe der Teile aus denen ein deformierbares Modell besteht zu setzen. Hierfür sollte GenParamNameGenParamNameGenParamNameGenParamNamegenParamName auf 'part_size' und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue auf 'small', 'medium' oder 'big' gesetzt werden. Für Objekte, die aus vielen kleinen Teilen bestehen, sollte 'small' ausgewählt werden. Für Objekte, die aus großen Konturen bestehen, sollte 'big' gesetzt werden.

Optional kann GenParamNameGenParamNameGenParamNameGenParamNamegenParamName = 'min_size'"min_size""min_size""min_size""min_size" gesetzt werden. Dieser Wert dient zur Selektion von signifikanten Komponenten des Modells basierend auf der Größe der Komponenten, d.h. Komponenten, deren Anzahl von Punkten kleiner ist als diese Mindestgröße, welche im entsprechenden GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue gesetzt wird, werden unterdrückt. Dieser Schwellwert wird pro Pyramidenstufe halbiert.

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

TemplateTemplateTemplateTemplatetemplate (input_object)  (multichannel-)image objectHImageHImageHobject (byte / uint2)

Eingabebild, dessen Definitionsbereich zum Aufbau des Modells verwendet wird.

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

Maximale Anzahl von Pyramidenebenen.

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

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

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

Dieser Parameter wird nicht benutzt.

Defaultwert: []

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

Dieser Parameter wird nicht benutzt.

Defaultwert: []

AngleStepAngleStepAngleStepAngleStepangleStep (input_control)  angle.rad HTupleHTupleHtuple (real / string) (double / string) (double / HString) (double / char*)

Schrittweite der Winkel (Auflösung).

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

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

ScaleRMinScaleRMinScaleRMinScaleRMinscaleRMin (input_control)  number HTupleHTupleHtuple (real) (double) (double) (double)

Kleinste auftretende Skalierung des Musters in Zeilenrichtung.

Defaultwert: 1.0

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

Restriktion: ScaleRMin > 0

ScaleRMaxScaleRMaxScaleRMaxScaleRMaxscaleRMax (input_control)  number-array HTupleHTupleHtuple (real) (double) (double) (double)

Dieser Parameter wird nicht benutzt.

Defaultwert: []

ScaleRStepScaleRStepScaleRStepScaleRStepscaleRStep (input_control)  number HTupleHTupleHtuple (real / string) (double / string) (double / HString) (double / char*)

Schrittweite der Skalierung (Auflösung) in Zeilenrichtung.

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

Wertevorschläge: 'auto'"auto""auto""auto""auto", 0.01, 0.02, 0.05, 0.1, 0.15, 0.2

Restriktion: ScaleRStep >= 0

ScaleCMinScaleCMinScaleCMinScaleCMinscaleCMin (input_control)  number HTupleHTupleHtuple (real) (double) (double) (double)

Kleinste auftretende Skalierung des Musters in Spaltenrichtung.

Defaultwert: 1.0

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

Restriktion: ScaleCMin > 0

ScaleCMaxScaleCMaxScaleCMaxScaleCMaxscaleCMax (input_control)  number-array HTupleHTupleHtuple (real) (double) (double) (double)

Dieser Parameter wird nicht benutzt.

Defaultwert: []

ScaleCStepScaleCStepScaleCStepScaleCStepscaleCStep (input_control)  number HTupleHTupleHtuple (real / string) (double / string) (double / HString) (double / char*)

Schrittweite der Skalierung (Auflösung) in Spaltenrichtung.

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

Wertevorschläge: 'auto'"auto""auto""auto""auto", 0.01, 0.02, 0.05, 0.1, 0.15, 0.2

Restriktion: ScaleCStep >= 0

OptimizationOptimizationOptimizationOptimizationoptimization (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Art der Optimierung der Modellgenerierung.

Defaultwert: 'none' "none" "none" "none" "none"

Werteliste: 'auto'"auto""auto""auto""auto", 'none'"none""none""none""none", '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_medium'"point_reduction_medium""point_reduction_medium""point_reduction_medium""point_reduction_medium"

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

Art der zum Matchen verwendeten Metrik.

Defaultwert: '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_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_part_polarity'"ignore_part_polarity""ignore_part_polarity""ignore_part_polarity""ignore_part_polarity", 'use_polarity'"use_polarity""use_polarity""use_polarity""use_polarity"

ContrastContrastContrastContrastcontrast (input_control)  number-array HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Schwellwerte bzw. Hystereseschwellwerte für den Kontrast des Objektes im Musterbild.

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

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

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

Minimaler Kontrast des Objektes in den Suchbildern.

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

Wertevorschläge: 'auto'"auto""auto""auto""auto", 1, 2, 3, 5, 7, 10, 20, 30, 40

Restriktion: MinContrast < Contrast

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  string-array HTupleHTupleHtuple (string) (string) (HString) (char*)

Namen der Parameter.

Defaultwert: []

Werteliste: [], 'min_size'"min_size""min_size""min_size""min_size", 'part_size'"part_size""part_size""part_size""part_size"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  integer-array HTupleHTupleHtuple (integer / real / string) (int / long / double / string) (Hlong / double / HString) (Hlong / double / char*)

Werte der Parameter.

Defaultwert: []

Werteliste: [], 'big'"big""big""big""big", 'medium'"medium""medium""medium""medium", 'small'"small""small""small""small"

ModelIDModelIDModelIDModelIDmodelID (output_control)  deformable_model HDeformableModel, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Modells.

Ergebnis

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

Vorgänger

determine_deformable_model_paramsdetermine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParamsDetermineDeformableModelParams

Nachfolger

set_deformable_model_originset_deformable_model_originSetDeformableModelOriginSetDeformableModelOriginSetDeformableModelOrigin, set_deformable_model_paramset_deformable_model_paramSetDeformableModelParamSetDeformableModelParamSetDeformableModelParam, get_deformable_model_contoursget_deformable_model_contoursGetDeformableModelContoursGetDeformableModelContoursGetDeformableModelContours, find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel, get_deformable_model_paramsget_deformable_model_paramsGetDeformableModelParamsGetDeformableModelParamsGetDeformableModelParams, write_deformable_modelwrite_deformable_modelWriteDeformableModelWriteDeformableModelWriteDeformableModel, clear_deformable_modelclear_deformable_modelClearDeformableModelClearDeformableModelClearDeformableModel

Alternativen

read_deformable_modelread_deformable_modelReadDeformableModelReadDeformableModelReadDeformableModel

Modul

Matching