Name
create_planar_uncalib_deformable_modelT_create_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel — Erzeugt ein deformierbares Modell für unkalibriertes, planares Matching.
create_planar_uncalib_deformable_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, ScaleRMin, ScaleRMax, ScaleRStep, ScaleCMin, ScaleCMax, ScaleCStep, Optimization, Metric, Contrast, MinContrast, ParamName, ParamValue : 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 ParamName, const Htuple ParamValue, Htuple* ModelID)
Herror create_planar_uncalib_deformable_model(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& ParamName, const HTuple& ParamValue, Hlong* ModelID)
HDeformableModel HImage::CreatePlanarUncalibDeformableModel(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& ParamName, const HTuple& ParamValue) const
void HDeformableModel::CreatePlanarUncalibDeformableModel(const HImage& 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& ParamName, const HTuple& ParamValue)
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& ParamName, const HTuple& ParamValue, HTuple* ModelID)
void HDeformableModel::HDeformableModel(const HImage& Template, const HTuple& NumLevels, double AngleStart, double AngleExtent, const HTuple& AngleStep, double ScaleRMin, double ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, double ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& ParamName, const HTuple& ParamValue)
void HDeformableModel::HDeformableModel(const HImage& Template, Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleRMin, double ScaleRMax, double ScaleRStep, double ScaleCMin, double ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& ParamName, const HTuple& ParamValue)
void HDeformableModel::HDeformableModel(const HImage& Template, Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleRMin, double ScaleRMax, double ScaleRStep, double ScaleCMin, double ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& ParamName, const HTuple& ParamValue)
void HDeformableModel::CreatePlanarUncalibDeformableModel(const HImage& Template, const HTuple& NumLevels, double AngleStart, double AngleExtent, const HTuple& AngleStep, double ScaleRMin, double ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, double ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& ParamName, const HTuple& ParamValue)
void HDeformableModel::CreatePlanarUncalibDeformableModel(const HImage& Template, Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleRMin, double ScaleRMax, double ScaleRStep, double ScaleCMin, double ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& ParamName, const HTuple& ParamValue)
void HDeformableModel::CreatePlanarUncalibDeformableModel(const HImage& Template, Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleRMin, double ScaleRMax, double ScaleRStep, double ScaleCMin, double ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& ParamName, const HTuple& ParamValue)
HDeformableModel HImage::CreatePlanarUncalibDeformableModel(const HTuple& NumLevels, double AngleStart, double AngleExtent, const HTuple& AngleStep, double ScaleRMin, double ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, double ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& ParamName, const HTuple& ParamValue) const
HDeformableModel HImage::CreatePlanarUncalibDeformableModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleRMin, double ScaleRMax, double ScaleRStep, double ScaleCMin, double ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& ParamName, const HTuple& ParamValue) const
HDeformableModel HImage::CreatePlanarUncalibDeformableModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleRMin, double ScaleRMax, double ScaleRStep, double ScaleCMin, double ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& ParamName, const HTuple& ParamValue) const
void HOperatorSetX.CreatePlanarUncalibDeformableModel(
[in] IHUntypedObjectX* Template, [in] VARIANT NumLevels, [in] VARIANT AngleStart, [in] VARIANT AngleExtent, [in] VARIANT AngleStep, [in] VARIANT ScaleRMin, [in] VARIANT ScaleRMax, [in] VARIANT ScaleRStep, [in] VARIANT ScaleCMin, [in] VARIANT ScaleCMax, [in] VARIANT ScaleCStep, [in] VARIANT Optimization, [in] VARIANT Metric, [in] VARIANT Contrast, [in] VARIANT MinContrast, [in] VARIANT ParamName, [in] VARIANT ParamValue, [out] VARIANT* ModelID)
void HDeformableModelX.CreatePlanarUncalibDeformableModel(
[in] IHImageX* Template, [in] VARIANT NumLevels, [in] double AngleStart, [in] double AngleExtent, [in] VARIANT AngleStep, [in] double ScaleRMin, [in] double ScaleRMax, [in] VARIANT ScaleRStep, [in] double ScaleCMin, [in] double ScaleCMax, [in] VARIANT ScaleCStep, [in] VARIANT Optimization, [in] BSTR Metric, [in] VARIANT Contrast, [in] VARIANT MinContrast, [in] VARIANT ParamName, [in] VARIANT ParamValue)
IHDeformableModelX* HImageX.CreatePlanarUncalibDeformableModel(
[in] VARIANT NumLevels, [in] double AngleStart, [in] double AngleExtent, [in] VARIANT AngleStep, [in] double ScaleRMin, [in] double ScaleRMax, [in] VARIANT ScaleRStep, [in] double ScaleCMin, [in] double ScaleCMax, [in] VARIANT ScaleCStep, [in] VARIANT Optimization, [in] BSTR Metric, [in] VARIANT Contrast, [in] VARIANT MinContrast, [in] VARIANT ParamName, [in] VARIANT ParamValue)
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 paramName, HTuple paramValue, out HTuple modelID)
public HDeformableModel(HImage template, HTuple numLevels, double angleStart, double angleExtent, HTuple angleStep, double scaleRMin, double scaleRMax, HTuple scaleRStep, double scaleCMin, double scaleCMax, HTuple scaleCStep, HTuple optimization, string metric, HTuple contrast, HTuple minContrast, HTuple paramName, HTuple paramValue)
public HDeformableModel(HImage template, int numLevels, double angleStart, double angleExtent, double angleStep, double scaleRMin, double scaleRMax, double scaleRStep, double scaleCMin, double scaleCMax, double scaleCStep, string optimization, string metric, HTuple contrast, int minContrast, HTuple paramName, HTuple paramValue)
void HDeformableModel.CreatePlanarUncalibDeformableModel(HImage template, HTuple numLevels, double angleStart, double angleExtent, HTuple angleStep, double scaleRMin, double scaleRMax, HTuple scaleRStep, double scaleCMin, double scaleCMax, HTuple scaleCStep, HTuple optimization, string metric, HTuple contrast, HTuple minContrast, HTuple paramName, HTuple paramValue)
void HDeformableModel.CreatePlanarUncalibDeformableModel(HImage template, int numLevels, double angleStart, double angleExtent, double angleStep, double scaleRMin, double scaleRMax, double scaleRStep, double scaleCMin, double scaleCMax, double scaleCStep, string optimization, string metric, HTuple contrast, int minContrast, HTuple paramName, HTuple paramValue)
HDeformableModel HImage.CreatePlanarUncalibDeformableModel(HTuple numLevels, double angleStart, double angleExtent, HTuple angleStep, double scaleRMin, double scaleRMax, HTuple scaleRStep, double scaleCMin, double scaleCMax, HTuple scaleCStep, HTuple optimization, string metric, HTuple contrast, HTuple minContrast, HTuple paramName, HTuple paramValue)
HDeformableModel HImage.CreatePlanarUncalibDeformableModel(int numLevels, double angleStart, double angleExtent, double angleStep, double scaleRMin, double scaleRMax, double scaleRStep, double scaleCMin, double scaleCMax, double scaleCStep, string optimization, string metric, HTuple contrast, int minContrast, HTuple paramName, HTuple paramValue)
Der Operator create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel bereitet ein
Muster, das als Bild TemplateTemplateTemplateTemplateTemplatetemplate übergeben wird, als deformierbares
Modell für das Matching vor. Die ROI des Modells wird als der
Definitionsbereich von TemplateTemplateTemplateTemplateTemplatetemplate ü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_modelCreateShapeModelcreate_shape_modelCreateShapeModelCreateShapeModel,
create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModel und create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModel,
bei denen typischerweise das Suchbild mit Hilfe von
calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras und gen_image_to_world_plane_mapgen_image_to_world_plane_mapGenImageToWorldPlaneMapgen_image_to_world_plane_mapGenImageToWorldPlaneMapGenImageToWorldPlaneMap vorher
entzerrt werden muss.
Im Gegensatz zu create_shape_model_3dcreate_shape_model_3dCreateShapeModel3dcreate_shape_model_3dCreateShapeModel3dCreateShapeModel3d 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_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel vorgezogen werden.
Das Modell wird auf mehreren Pyramidenebenen generiert und im Speicher
abgelegt. Der Ausgabeparameter ModelIDModelIDModelIDModelIDModelIDmodelID ist ein Handle für dieses
Modell, der in nachfolgenden Aufrufen von
find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel verwendet wird.
Die Anzahl der Pyramidenebenen wird mit NumLevelsNumLevelsNumLevelsNumLevelsNumLevelsnumLevels festgelegt. Sie
sollte so groß wie möglich gewählt werden, da hierdurch das Auffinden des
Modells erheblich beschleunigt wird. Bei der Wahl von NumLevelsNumLevelsNumLevelsNumLevelsNumLevelsnumLevels 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_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel eine Fehlermeldung zurück.
Falls für NumLevelsNumLevelsNumLevelsNumLevelsNumLevelsnumLevels 'auto'"auto""auto""auto""auto""auto" übergeben wird, wählt
create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel die Anzahl der Pyramidenstufen
automatisch. Die automatisch gewählte Anzahl von Pyramidenstufen kann mit
get_deformable_model_paramsget_deformable_model_paramsGetDeformableModelParamsget_deformable_model_paramsGetDeformableModelParamsGetDeformableModelParams abgefragt werden. In seltenen Fällen
kann es vorkommen, dass create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel 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_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel 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_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel kommen. In diesen Fällen
sollte die Anzahl der Pyramidenstufen mit Hilfe der Ausgabe von
inspect_shape_modelinspect_shape_modelInspectShapeModelinspect_shape_modelInspectShapeModelInspectShapeModel gewählt werden.
Die Parameter AngleStartAngleStartAngleStartAngleStartAngleStartangleStart, AngleExtentAngleExtentAngleExtentAngleExtentAngleExtentangleExtent, ScaleRMinScaleRMinScaleRMinScaleRMinScaleRMinscaleRMin,
ScaleRMaxScaleRMaxScaleRMaxScaleRMaxScaleRMaxscaleRMax, ScaleCMinScaleCMinScaleCMinScaleCMinScaleCMinscaleCMin und ScaleCMaxScaleCMaxScaleCMaxScaleCMaxScaleCMaxscaleCMax legen
einen grundsätzlichen Bereich bis zu einer anisotropen Transformation fest,
der auf der obersten Pyramidenstufe des Bildes erschöpfend durchsucht wird.
Es ist zu beachten, dass der Operator
find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel Objekte außerhalb dieses
Bereiches, z.B. auch dann wenn das Objekt perspektivisch verzerrt ist,
findet. Demzufolge sind die Bereichsparameter eine Art Hinweis für den
Suchalgorithmus find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel, und ausgehend
von diesem Bereich kann in einem größeren Bereich, der von der Anzahl der
Pyramidenstufen wie auch vom Bildinhalt abhängt, detektiert werden.
Es ist zum Beispiel wichtig zu beachten, dass kleine Skalierungsunterschiede
ohne die explizite Angabe eines Skalierungsbereichs detektiert werden, was
zu einer schnelleren Ausführungszeit führt.
Die Parameter AngleStartAngleStartAngleStartAngleStartAngleStartangleStart und AngleExtentAngleExtentAngleExtentAngleExtentAngleExtentangleExtent legen den
Winkelbereich für die möglichen Rotationen des Modells im Bild fest,
die erschöpfend durchsucht werden.
Der Parameter AngleStepAngleStepAngleStepAngleStepAngleStepangleStep bestimmt die Schrittweite innerhalb des
ausgewählten Winckelbereichs. Der Parameter AngleStepAngleStepAngleStepAngleStepAngleStepangleStep sollte
aufgrund der Größe des Objekts gewählt werden. Kleinere Modelle
besitzen nur eine kleine Anzahl von verschiedenen diskreten Rotationen im
Bild. Deshalb sollte AngleStepAngleStepAngleStepAngleStepAngleStepangleStep für kleinere Modelle größer
gewählt werden. Falls AngleExtentAngleExtentAngleExtentAngleExtentAngleExtentangleExtent kein ganzzahliges Vielfaches
von AngleStepAngleStepAngleStepAngleStepAngleStepangleStep ist, wird AngleStepAngleStepAngleStepAngleStepAngleStepangleStep entsprechend angepasst.
Die Parameter ScaleRMinScaleRMinScaleRMinScaleRMinScaleRMinscaleRMin, ScaleRMaxScaleRMaxScaleRMaxScaleRMaxScaleRMaxscaleRMax,
ScaleCMinScaleCMinScaleCMinScaleCMinScaleCMinscaleCMin und ScaleCMaxScaleCMaxScaleCMaxScaleCMaxScaleCMaxscaleCMax bestimmen den möglichen Bereich
von anisotropen Skalierungen die im Bild erschöpfend durchsucht werden.
Eine Skalierung von 1 für beide Skalierungsfaktoren entspricht
der Originalgröße des Modells. Die Parameter ScaleRStepScaleRStepScaleRStepScaleRStepScaleRStepscaleRStep und
ScaleCStepScaleCStepScaleCStepScaleCStepScaleCStepscaleCStep bestimmen die Schrittweite innerhalb des
Skalierungsbereichs. Wie auch AngleStepAngleStepAngleStepAngleStepAngleStepangleStep sollten ScaleRStepScaleRStepScaleRStepScaleRStepScaleRStepscaleRStep
und ScaleCStepScaleCStepScaleCStepScaleCStepScaleCStepscaleCStep aufgrund der Größe des Modells gewählt werden.
Falls der jeweilige Skalierungsbereich kein ganzzahliges Vielfaches von
ScaleRStepScaleRStepScaleRStepScaleRStepScaleRStepscaleRStep und ScaleCStepScaleCStepScaleCStepScaleCStepScaleCStepscaleCStep ist, werden ScaleRStepScaleRStepScaleRStepScaleRStepScaleRStepscaleRStep
und ScaleCStepScaleCStepScaleCStepScaleCStepScaleCStepscaleCStep entsprechend angepasst.
Falls das Objekt signifikante Skalierungsunterschiede aufweist, aber nur
kleine perspektivische Verzeichnungen, benötigt man nur eine isotrope
Skalierung und ScaleCMinScaleCMinScaleCMinScaleCMinScaleCMinscaleCMin wie auch ScaleCMaxScaleCMaxScaleCMaxScaleCMaxScaleCMaxscaleCMax sollten auf
den Wert 1.0 gesetzt werden, um zu signalisieren, dass keine anisotrope
Skalierung benötigt wird. Falls das Objekt auch unter deutlichen
Verkippungen erkannt werden soll, benötigt man eine anisotrope Skalierung.
In diesem Fall wird die anisotrophe Skalierung durch ScaleRMinScaleRMinScaleRMinScaleRMinScaleRMinscaleRMin und
ScaleRMaxScaleRMaxScaleRMaxScaleRMaxScaleRMaxscaleRMax in Zeilenrichtung, und durch ScaleCMinScaleCMinScaleCMinScaleCMinScaleCMinscaleCMin und
ScaleCMaxScaleCMaxScaleCMaxScaleCMaxScaleCMaxscaleCMax in Spaltenrichtung eingestellt.
Es ist zu beachten, dass die Transformationen intern so behandelt
werden, dass erst die Skalierungen und dann die Rotation angewendet
werden. Daher sollte das Modell im Normalfall so ausgerichtet
werden, dass es im Modellbild horizontal oder vertikal erscheint.
Bei besonders großen Modellen kann es sinnvoll sein, die Anzahl
der Modellpunkte durch Setzen des Parameters OptimizationOptimizationOptimizationOptimizationOptimizationoptimization
auf einen Wert ungleich 'none'"none""none""none""none""none" zu setzen. Falls
OptimizationOptimizationOptimizationOptimizationOptimizationoptimization = 'none'"none""none""none""none""none", werden alle Modellpunkte
abgespeichert. Ansonsten wird die Anzahl der Punkte entsprechend
dem Parameter OptimizationOptimizationOptimizationOptimizationOptimizationoptimization reduziert. Falls die Anzahl der
Punkte reduziert wird, kann es bei
find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel 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 OptimizationOptimizationOptimizationOptimizationOptimizationoptimization 'auto'"auto""auto""auto""auto""auto" übergeben wird, wählt
create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel die Reduktion der Punkte
automatisch.
Der Parameter ContrastContrastContrastContrastContrastcontrast 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.
ContrastContrastContrastContrastContrastcontrast sollte so gewählt werden, dass nur die
signifikanten Merkmale des Musters für das Modell verwendet werden.
ContrastContrastContrastContrastContrastcontrast 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_imageEdgesImageedges_imageEdgesImageEdgesImage 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_thresholdHysteresisThresholdhysteresis_thresholdHysteresisThresholdHysteresisThreshold.
Wird ContrastContrastContrastContrastContrastcontrast auf 'auto'"auto""auto""auto""auto""auto" gesetzt, dann bestimmt
create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel die beschriebenen Werte
automatisch. Daneben besteht die Möglichkeit, nur den Kontrast
('auto_contrast'"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""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_paramsDetermineDeformableModelParamsdetermine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParams automatisch zu ermitteln und
das Ergebnis mit inspect_shape_modelinspect_shape_modelInspectShapeModelinspect_shape_modelInspectShapeModelInspectShapeModel zu überprüfen.
Mit MinContrastMinContrastMinContrastMinContrastMinContrastminContrast wird festgelegt, welchen Grauwertkontrast im Bild
das Modell später bei der Erkennung mit
find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel 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 MinContrastMinContrastMinContrastMinContrastMinContrastminContrast auf 10 gesetzt werden.
Offensichtlich muss
MinContrastMinContrastMinContrastMinContrastMinContrastminContrast kleiner als ContrastContrastContrastContrastContrastcontrast sein. Falls das
Modell später in sehr kontrastarmen Bildern erkannt werden soll,
muss MinContrastMinContrastMinContrastMinContrastMinContrastminContrast entsprechend klein gewählt werden. Falls
das Modell mit erheblichen Verdeckungen erkannt werden soll, sollte
MinContrastMinContrastMinContrastMinContrastMinContrastminContrast 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_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel zu gewährleisten.
Wird MinContrastMinContrastMinContrastMinContrastMinContrastminContrast auf 'auto'"auto""auto""auto""auto""auto" gesetzt, wählt
create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel 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_paramsGetDeformableModelParamsget_deformable_model_paramsGetDeformableModelParamsGetDeformableModelParams abgefragt werden.
Der MinContrastMinContrastMinContrastMinContrastMinContrastminContrast eines deformierbaren Modells kann später mit
set_deformable_model_paramset_deformable_model_paramSetDeformableModelParamset_deformable_model_paramSetDeformableModelParamSetDeformableModelParam noch geändert werden.
Der Parameter MetricMetricMetricMetricMetricmetric legt fest, unter welchen Bedingungen
das Muster im Bild noch erkannt wird. Falls MetricMetricMetricMetricMetricmetric =
'use_polarity'"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 MetricMetricMetricMetricMetricmetric =
'ignore_global_polarity'"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_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel erhöht sich in
diesem Fall geringfügig.
Falls MetricMetricMetricMetricMetricmetric = 'ignore_part_polarity'"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""ignore_part_polarity"
missverstanden werden kann. Er bedeutet, dass Polaritätswechsel
zwischen benachbarten Modellteilen den Score nicht beeinflussen
und daher ignoriert werden.
Falls MetricMetricMetricMetricMetricmetric = 'ignore_local_polarity'"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_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel 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
MetricMetricMetricMetricMetricmetric = 'ignore_color_polarity'"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_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel erheblich erhöhen. Die Metrik
'ignore_color_polarity'"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""ignore_local_polarity". Es ist zu beachten, dass für
MetricMetricMetricMetricMetricmetric = 'ignore_color_polarity'"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_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel und bei der Suche mit
find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel 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.
Mit Hilfe der generischen Parameter ParamNameParamNameParamNameParamNameParamNameparamName und
ParamValueParamValueParamValueParamValueParamValueparamValue 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 ParamNameParamNameParamNameParamNameParamNameparamName auf 'part_size' und
ParamValueParamValueParamValueParamValueParamValueparamValue 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 Kontouren bestehen, sollte
'big' gesetzt werden.
Optional kann ParamNameParamNameParamNameParamNameParamNameparamName = 'min_size'"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 ParamValueParamValueParamValueParamValueParamValueparamValue gesetzt wird, werden unterdrückt.
Dieser Schwellwert wird pro Pyramidenstufe halbiert.
Als Ursprung (Referenzpunkt) des Modells wird der Schwerpunkt der
Region des Modellbildes TemplateTemplateTemplateTemplateTemplatetemplate verwendet. Falls ein
anderer Ursprung gewünscht wird, kann dieser mit
set_deformable_model_originset_deformable_model_originSetDeformableModelOriginset_deformable_model_originSetDeformableModelOriginSetDeformableModelOrigin gesetzt werden.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
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.
Eingabebild, dessen Definitionsbereich zum
Aufbau des Modells verwendet wird.
Maximale Anzahl von Pyramidenebenen.
Defaultwert:
'auto'
"auto"
"auto"
"auto"
"auto"
"auto"
Werteliste: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'auto'"auto""auto""auto""auto""auto"
Kleinste auftretende Rotation des Musters.
Defaultwert: -0.39
Wertevorschläge: -3.14, -1.57, -0.79, -0.39, -0.20, 0.0
Ausdehnung des Winkelbereichs.
Defaultwert: 0.79
Wertevorschläge: 6.29, 3.14, 1.57, 0.79, 0.39
Restriktion: AngleExtent >= 0
Schrittweite der Winkel (Auflösung).
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: AngleStep >= 0
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
Größte auftretende Skalierung des Musters in
Zeilenrichtung.
Defaultwert: 1.0
Wertevorschläge: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5
Restriktion: ScaleRMax >= ScaleRMin
Schrittweite der Skalierung (Auflösung) in
Zeilenrichtung.
Defaultwert:
'auto'
"auto"
"auto"
"auto"
"auto"
"auto"
Wertevorschläge: 'auto'"auto""auto""auto""auto""auto", 0.01, 0.02, 0.05, 0.1, 0.15, 0.2
Restriktion: ScaleRStep >= 0
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
Größte auftretende Skalierung des Musters in
Spaltenrichtung.
Defaultwert: 1.0
Wertevorschläge: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5
Restriktion: ScaleCMax >= ScaleCMin
Schrittweite der Skalierung (Auflösung) in
Spaltenrichtung.
Defaultwert:
'auto'
"auto"
"auto"
"auto"
"auto"
"auto"
Wertevorschläge: 'auto'"auto""auto""auto""auto""auto", 0.01, 0.02, 0.05, 0.1, 0.15, 0.2
Restriktion: ScaleCStep >= 0
Art der Optimierung der Modellgenerierung.
Defaultwert:
'none'
"none"
"none"
"none"
"none"
"none"
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"
Art der zum Matchen 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", 'ignore_part_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""use_polarity"
Schwellwerte bzw. Hystereseschwellwerte für den
Kontrast des Objektes im Musterbild.
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
Minimaler Kontrast des Objektes in den Suchbildern.
Defaultwert:
'auto'
"auto"
"auto"
"auto"
"auto"
"auto"
Wertevorschläge: 'auto'"auto""auto""auto""auto""auto", 1, 2, 3, 5, 7, 10, 20, 30, 40
Restriktion: MinContrast < Contrast
Namen der Parameter.
Defaultwert: []
Werteliste: [], 'min_size'"min_size""min_size""min_size""min_size""min_size", 'part_size'"part_size""part_size""part_size""part_size""part_size"
Werte der Parameter.
Defaultwert: []
Werteliste: [], 'big'"big""big""big""big""big", 'medium'"medium""medium""medium""medium""medium", 'small'"small""small""small""small""small"
Sind die Parameterwerte korrekt, dann liefert
create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel den Wert 2 (H_MSG_TRUE). Gegebenenfalls
wird eine Fehlerbehandlung durchgeführt.
determine_deformable_model_paramsdetermine_deformable_model_paramsDetermineDeformableModelParamsdetermine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParams
set_deformable_model_originset_deformable_model_originSetDeformableModelOriginset_deformable_model_originSetDeformableModelOriginSetDeformableModelOrigin,
set_deformable_model_paramset_deformable_model_paramSetDeformableModelParamset_deformable_model_paramSetDeformableModelParamSetDeformableModelParam,
get_deformable_model_contoursget_deformable_model_contoursGetDeformableModelContoursget_deformable_model_contoursGetDeformableModelContoursGetDeformableModelContours,
find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel,
get_deformable_model_paramsget_deformable_model_paramsGetDeformableModelParamsget_deformable_model_paramsGetDeformableModelParamsGetDeformableModelParams,
write_deformable_modelwrite_deformable_modelWriteDeformableModelwrite_deformable_modelWriteDeformableModelWriteDeformableModel,
clear_deformable_modelclear_deformable_modelClearDeformableModelclear_deformable_modelClearDeformableModelClearDeformableModel
read_deformable_modelread_deformable_modelReadDeformableModelread_deformable_modelReadDeformableModelReadDeformableModel
Matching