create_scaled_shape_model_xld T_create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld (Operator)
Name
create_scaled_shape_model_xld T_create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld — Vorbereiten eines isotrop skalierten Formmodells für das Matching
aus XLD-Konturen.
Signatur
Herror T_create_scaled_shape_model_xld (const Hobject Contours , const Htuple NumLevels , const Htuple AngleStart , const Htuple AngleExtent , const Htuple AngleStep , const Htuple ScaleMin , const Htuple ScaleMax , const Htuple ScaleStep , const Htuple Optimization , const Htuple Metric , const Htuple MinContrast , Htuple* ModelID )
void CreateScaledShapeModelXld (const HObject& Contours , const HTuple& NumLevels , const HTuple& AngleStart , const HTuple& AngleExtent , const HTuple& AngleStep , const HTuple& ScaleMin , const HTuple& ScaleMax , const HTuple& ScaleStep , const HTuple& Optimization , const HTuple& Metric , const HTuple& MinContrast , HTuple* ModelID )
void HShapeModel ::HShapeModel (const HXLDCont& Contours , const HTuple& NumLevels , double AngleStart , double AngleExtent , const HTuple& AngleStep , double ScaleMin , double ScaleMax , const HTuple& ScaleStep , const HTuple& Optimization , const HString& Metric , Hlong MinContrast )
void HShapeModel ::HShapeModel (const HXLDCont& Contours , Hlong NumLevels , double AngleStart , double AngleExtent , double AngleStep , double ScaleMin , double ScaleMax , double ScaleStep , const HString& Optimization , const HString& Metric , Hlong MinContrast )
void HShapeModel ::HShapeModel (const HXLDCont& Contours , Hlong NumLevels , double AngleStart , double AngleExtent , double AngleStep , double ScaleMin , double ScaleMax , double ScaleStep , const char* Optimization , const char* Metric , Hlong MinContrast )
void HShapeModel ::HShapeModel (const HXLDCont& Contours , Hlong NumLevels , double AngleStart , double AngleExtent , double AngleStep , double ScaleMin , double ScaleMax , double ScaleStep , const wchar_t* Optimization , const wchar_t* Metric , Hlong MinContrast )
(Nur Windows)
void HShapeModel ::CreateScaledShapeModelXld (const HXLDCont& Contours , const HTuple& NumLevels , double AngleStart , double AngleExtent , const HTuple& AngleStep , double ScaleMin , double ScaleMax , const HTuple& ScaleStep , const HTuple& Optimization , const HString& Metric , Hlong MinContrast )
void HShapeModel ::CreateScaledShapeModelXld (const HXLDCont& Contours , Hlong NumLevels , double AngleStart , double AngleExtent , double AngleStep , double ScaleMin , double ScaleMax , double ScaleStep , const HString& Optimization , const HString& Metric , Hlong MinContrast )
void HShapeModel ::CreateScaledShapeModelXld (const HXLDCont& Contours , Hlong NumLevels , double AngleStart , double AngleExtent , double AngleStep , double ScaleMin , double ScaleMax , double ScaleStep , const char* Optimization , const char* Metric , Hlong MinContrast )
void HShapeModel ::CreateScaledShapeModelXld (const HXLDCont& Contours , Hlong NumLevels , double AngleStart , double AngleExtent , double AngleStep , double ScaleMin , double ScaleMax , double ScaleStep , const wchar_t* Optimization , const wchar_t* Metric , Hlong MinContrast )
(Nur Windows)
HShapeModel HXLDCont ::CreateScaledShapeModelXld (const HTuple& NumLevels , double AngleStart , double AngleExtent , const HTuple& AngleStep , double ScaleMin , double ScaleMax , const HTuple& ScaleStep , const HTuple& Optimization , const HString& Metric , Hlong MinContrast ) const
HShapeModel HXLDCont ::CreateScaledShapeModelXld (Hlong NumLevels , double AngleStart , double AngleExtent , double AngleStep , double ScaleMin , double ScaleMax , double ScaleStep , const HString& Optimization , const HString& Metric , Hlong MinContrast ) const
HShapeModel HXLDCont ::CreateScaledShapeModelXld (Hlong NumLevels , double AngleStart , double AngleExtent , double AngleStep , double ScaleMin , double ScaleMax , double ScaleStep , const char* Optimization , const char* Metric , Hlong MinContrast ) const
HShapeModel HXLDCont ::CreateScaledShapeModelXld (Hlong NumLevels , double AngleStart , double AngleExtent , double AngleStep , double ScaleMin , double ScaleMax , double ScaleStep , const wchar_t* Optimization , const wchar_t* Metric , Hlong MinContrast ) const
(Nur Windows)
static void HOperatorSet .CreateScaledShapeModelXld (HObject contours , HTuple numLevels , HTuple angleStart , HTuple angleExtent , HTuple angleStep , HTuple scaleMin , HTuple scaleMax , HTuple scaleStep , HTuple optimization , HTuple metric , HTuple minContrast , out HTuple modelID )
public HShapeModel (HXLDCont contours , HTuple numLevels , double angleStart , double angleExtent , HTuple angleStep , double scaleMin , double scaleMax , HTuple scaleStep , HTuple optimization , string metric , int minContrast )
public HShapeModel (HXLDCont contours , int numLevels , double angleStart , double angleExtent , double angleStep , double scaleMin , double scaleMax , double scaleStep , string optimization , string metric , int minContrast )
void HShapeModel .CreateScaledShapeModelXld (HXLDCont contours , HTuple numLevels , double angleStart , double angleExtent , HTuple angleStep , double scaleMin , double scaleMax , HTuple scaleStep , HTuple optimization , string metric , int minContrast )
void HShapeModel .CreateScaledShapeModelXld (HXLDCont contours , int numLevels , double angleStart , double angleExtent , double angleStep , double scaleMin , double scaleMax , double scaleStep , string optimization , string metric , int minContrast )
HShapeModel HXLDCont .CreateScaledShapeModelXld (HTuple numLevels , double angleStart , double angleExtent , HTuple angleStep , double scaleMin , double scaleMax , HTuple scaleStep , HTuple optimization , string metric , int minContrast )
HShapeModel HXLDCont .CreateScaledShapeModelXld (int numLevels , double angleStart , double angleExtent , double angleStep , double scaleMin , double scaleMax , double scaleStep , string optimization , string metric , int minContrast )
def create_scaled_shape_model_xld (contours : HObject, num_levels : Union[int, str], angle_start : float, angle_extent : float, angle_step : Union[float, str], scale_min : float, scale_max : float, scale_step : Union[float, str], optimization : MaybeSequence[str], metric : str, min_contrast : int) -> HHandle
Beschreibung
create_scaled_shape_model_xld create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld erzeugt ein isotrop skaliertes
Formmodell für das Matching aus den XLD Konturen Contours Contours Contours Contours contours contours . Die
XLD Konturen repräsentieren dabei die Grauwertkanten des zu suchenden Objekts
im Bild. Im Gegensatz zu dem Operator create_scaled_shape_model create_scaled_shape_model CreateScaledShapeModel CreateScaledShapeModel CreateScaledShapeModel create_scaled_shape_model , der
ein Formmodell aus einem Bild erzeugt, erzeugt der Operator
create_scaled_shape_model_xld create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld das Formmodell aus XLD Konturen, d.h.,
ohne die Verwendung eines Bildes.
Der Ausgabeparameter ModelID ModelID ModelID ModelID modelID model_id ist ein Handle für dieses Modell,
der in nachfolgenden Aufrufen von find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model
verwendet wird. Als Ursprung (Referenzpunkt) des Modells wird der Schwerpunkt des
kleinsten umschließenden Rechtecks der Konturen Contours Contours Contours Contours contours contours , das
parallel zu den Koordinatenachsen liegt, verwendet. Falls ein anderer
Ursprung gewünscht wird, kann dieser mit set_shape_model_origin set_shape_model_origin SetShapeModelOrigin SetShapeModelOrigin SetShapeModelOrigin set_shape_model_origin
gesetzt werden.
Das Modell wird für mehrere Pyramidenebenen generiert und im
Speicher abgelegt. Falls eine vollständige Vorabgenerierung des
Modells gewählt wird (siehe unten), wird das Modell in mehreren
Rotationen und Skalierungen auf jeder Ebene generiert. Das Modell kann
mit set_shape_model_clutter set_shape_model_clutter SetShapeModelClutter SetShapeModelClutter SetShapeModelClutter set_shape_model_clutter um Störparameter erweitert werden.
Eingabeparameter im Detail
NumLevels:
Die Anzahl der Pyramidenebenen wird mit NumLevels NumLevels NumLevels NumLevels numLevels num_levels
festgelegt. Sie sollte so groß wie möglich gewählt werden, da
hierdurch das Auffinden des Modells erheblich beschleunigt wird.
Bei der Wahl von NumLevels NumLevels NumLevels NumLevels numLevels num_levels ist aber darauf zu achten, dass
das Modell auf der obersten Pyramidenstufe noch erkennbar ist und
genügend viele Punkte besitzt (mindestens vier). 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 keiner Pyramidenstufe entstehen
würde, d.h. falls schon auf der untersten Pyramidenstufe zu wenige
Modellpunkte vorhanden sind, liefert
create_scaled_shape_model_xld create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld eine Fehlermeldung zurück.
Falls für NumLevels NumLevels NumLevels NumLevels numLevels num_levels 'auto' "auto" "auto" "auto" "auto" "auto" übergeben wird, wählt
create_scaled_shape_model_xld create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld die Anzahl der Pyramidenstufen
automatisch. Die gewählte Anzahl von Pyramidenstufen
kann mit get_shape_model_params get_shape_model_params GetShapeModelParams GetShapeModelParams GetShapeModelParams get_shape_model_params abgefragt werden. In
seltenen Fällen kann es vorkommen, dass
create_scaled_shape_model_xld create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld 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 MinScore MinScore MinScore minScore min_score
oder Greediness Greediness Greediness Greediness greediness greediness in find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model 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_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model kommen. In diesen
Fällen sollte die Anzahl der Pyramidenstufen manuell gewählt werden.
AngleStart, AngleExtent und AngleStep:
Die Parameter AngleStart AngleStart AngleStart AngleStart angleStart angle_start und AngleExtent AngleExtent AngleExtent AngleExtent angleExtent angle_extent legen den
Winkelbereich für die möglichen Rotationen des Objektes im Bild fest.
Das Objekt kann also mit find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model nur in
diesem Winkelbereich gefunden werden. Der Parameter
AngleStep AngleStep AngleStep AngleStep angleStep angle_step gibt die Schrittweite der Winkel in dem gewählten
Winkelbereich an. Falls bei find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model keine
Subpixelgenauigkeit spezifiziert wird, gibt AngleStep AngleStep AngleStep AngleStep angleStep angle_step also
die erreichbare Winkelgenauigkeit an. AngleStep AngleStep AngleStep AngleStep angleStep angle_step sollte
aufgrund der Größe des Objektes gewählt werden. Kleinere Modelle
besitzen nur eine kleine Anzahl von verschiedenen diskreten
Rotationen im Bild. Deshalb sollte AngleStep AngleStep AngleStep AngleStep angleStep angle_step für kleinere
Modelle größer gewählt werden. Falls AngleExtent AngleExtent AngleExtent AngleExtent angleExtent angle_extent kein
ganzzahliges Vielfaches von AngleStep AngleStep AngleStep AngleStep angleStep angle_step ist, wird
AngleStep AngleStep AngleStep AngleStep angleStep angle_step entsprechend angepasst.
Um sicherzustellen, dass find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model für
Modellinstanzen ohne Rotation Winkel von exakt 0.0 zurückgibt, wird der
Winkelbereich der möglichen Rotationen folgendermaßen angepasst: Wenn
kein positiver ganzzahliger Wert n existiert, für den
AngleStart AngleStart AngleStart AngleStart angleStart angle_start plus n mal AngleStep AngleStep AngleStep AngleStep angleStep angle_step genau Null ergibt,
wird AngleStart AngleStart AngleStart AngleStart angleStart angle_start um höchstens AngleStep AngleStep AngleStep AngleStep angleStep angle_step verringert,
und AngleExtent AngleExtent AngleExtent AngleExtent angleExtent angle_extent wird um AngleStep AngleStep AngleStep AngleStep angleStep angle_step vergrößert.
ScaleMin, ScaleMax und ScaleStep:
Die Parameter ScaleMin ScaleMin ScaleMin ScaleMin scaleMin scale_min und ScaleMax ScaleMax ScaleMax ScaleMax scaleMax scale_max legen den
Bereich der möglichen Skalierung (Größe) des Objektes im Bild fest.
Eine Skalierung von 1 entspricht der Originalgröße des Modells. Der
Parameter ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step gibt die Schrittweite der Skalierungen
an. Falls bei find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model keine
Subpixelgenauigkeit spezifiziert wird, gibt ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step also
die erreichbare Genauigkeit der Skalierung an. Wie
AngleStep AngleStep AngleStep AngleStep angleStep angle_step sollte ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step aufgrund der Größe des
Objektes gewählt werden. Falls der Skalierungsbereich kein
ganzzahliges Vielfaches von ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step ist, wird
ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step entsprechend angepasst.
Um sicherzustellen, dass find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model für
Modellinstanzen ohne Skalierung Skalierungen von exakt 1.0
zurückgibt, wird der
Bereich der möglichen Skalierungen folgendermaßen angepasst: Wenn
kein positiver ganzzahliger Wert n existiert, für den
ScaleMin ScaleMin ScaleMin ScaleMin scaleMin scale_min plus n mal ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step genau 1.0 ergibt,
wird ScaleMin ScaleMin ScaleMin ScaleMin scaleMin scale_min um höchstens ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step verringert,
und ScaleMax ScaleMax ScaleMax ScaleMax scaleMax scale_max wird so erhöht, dass der Skalierungsbereich um
ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step vergrößert wird.
Optimization:
Bei besonders großen Modellen kann es auch sinnvoll sein, die Anzahl
der Modellpunkte durch Setzen des Parameters Optimization Optimization Optimization Optimization optimization optimization
auf einen Wert ungleich 'none' "none" "none" "none" "none" "none" zu setzen. Falls
Optimization Optimization Optimization Optimization optimization optimization = 'none' "none" "none" "none" "none" "none" , werden alle Modellpunkte
abgespeichert. Ansonsten wird die Anzahl der Punkte entsprechend
dem Parameter Optimization Optimization Optimization Optimization optimization optimization reduziert. Falls die Anzahl der
Punkte reduziert wird, kann es bei find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model
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 Optimization Optimization Optimization Optimization optimization optimization 'auto' "auto" "auto" "auto" "auto" "auto" übergeben wird, wählt
create_scaled_shape_model_xld create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld die Reduktion der Punkte
automatisch.
Metric:
Der Parameter Metric Metric Metric Metric metric metric legt fest, unter welchen Bedingungen
das Muster im Bild noch erkannt wird.
Falls Metric Metric Metric Metric metric metric = '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 Metric Metric Metric Metric metric metric = '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_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model
erhöht sich in diesem Fall geringfügig.
Es ist zu beachten, dass die beiden Werte 'use_polarity' "use_polarity" "use_polarity" "use_polarity" "use_polarity" "use_polarity" und
'ignore_global_polarity' "ignore_global_polarity" "ignore_global_polarity" "ignore_global_polarity" "ignore_global_polarity" "ignore_global_polarity" für Metric Metric Metric Metric metric metric nur dann
verwendet werden können, wenn bei allen Konturen, die in Contours Contours Contours Contours contours contours
übergeben wurden, das Attribut 'edge_direction' "edge_direction" "edge_direction" "edge_direction" "edge_direction" "edge_direction" gesetzt ist, da es
die Polarität der Kanten festlegt. Für weitere Informationen zu
Konturattributen wie 'edge_direction' "edge_direction" "edge_direction" "edge_direction" "edge_direction" "edge_direction" siehe
get_contour_attrib_xld get_contour_attrib_xld GetContourAttribXld GetContourAttribXld GetContourAttribXld get_contour_attrib_xld .
Ansonsten besteht die Möglichkeit, die beiden Werte für Metric Metric Metric Metric metric metric mit
dem Operator set_shape_model_metric set_shape_model_metric SetShapeModelMetric SetShapeModelMetric SetShapeModelMetric set_shape_model_metric zu setzen, der die Polarität
der Kanten aus einem Bild bestimmt.
Falls Metric Metric Metric Metric metric metric = '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. Da sich in diesem Fall die Laufzeit von
find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model aber wesentlich erhöht, ist es in
solchen Fällen meist sinnvoller, mehrere Modelle mit
create_scaled_shape_model_xld create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld zu erzeugen und mit
find_scaled_shape_models find_scaled_shape_models FindScaledShapeModels FindScaledShapeModels FindScaledShapeModels find_scaled_shape_models zu suchen.
Die obigen drei 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.
Falls Metric Metric Metric Metric metric metric = 'ignore_color_polarity' "ignore_color_polarity" "ignore_color_polarity" "ignore_color_polarity" "ignore_color_polarity" "ignore_color_polarity" , wird das Modell
auch dann gefunden, falls sich die Farbkontraste lokal ändern können. 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_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model 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
Metric Metric Metric Metric metric metric = 'ignore_color_polarity' "ignore_color_polarity" "ignore_color_polarity" "ignore_color_polarity" "ignore_color_polarity" "ignore_color_polarity" 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.
Es ist auch zu beachten, dass die beiden ersten Werte für Metric Metric Metric Metric metric metric
('use_polarity' "use_polarity" "use_polarity" "use_polarity" "use_polarity" "use_polarity" und 'ignore_global_polarity' "ignore_global_polarity" "ignore_global_polarity" "ignore_global_polarity" "ignore_global_polarity" "ignore_global_polarity" ) nur dann
verwendet werden können, wenn bei allen Konturen, die in Contours Contours Contours Contours contours contours
übergeben wurden, das Attribut 'edge_direction' "edge_direction" "edge_direction" "edge_direction" "edge_direction" "edge_direction" gesetzt ist, da es
die Polarität der Kanten festlegt. Für weitere Informationen zu
Konturattributen wie 'edge_direction' "edge_direction" "edge_direction" "edge_direction" "edge_direction" "edge_direction" siehe
get_contour_attrib_xld get_contour_attrib_xld GetContourAttribXld GetContourAttribXld GetContourAttribXld get_contour_attrib_xld .
Ansonsten besteht die Möglichkeit, die beiden Werte für Metric Metric Metric Metric metric metric mit
dem Operator set_shape_model_metric set_shape_model_metric SetShapeModelMetric SetShapeModelMetric SetShapeModelMetric set_shape_model_metric zu setzen, der die Polarität
der Kanten aus einem Bild bestimmt.
MinContrast:
Mit MinContrast MinContrast MinContrast MinContrast minContrast min_contrast wird festgelegt, welchen Grauwertkontrast die
Objektkanten später bei der Erkennung mit find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model im
Suchbild mindestens besitzen müssen. Mit anderen Worten stellt dieser
Parameter somit eine Abgrenzung des Objektes von Rauschen im Bild dar. Eine
gute Wahl ist deshalb der Bereich von Grauwertänderungen, der durch das
Rauschen im Bild verursacht wird. Falls die Grauwerte z.B. in einem Bereich
von 10 Graustufen durch Rauschen schwanken, sollte MinContrast MinContrast MinContrast MinContrast minContrast min_contrast auf
10 gesetzt werden. Falls mehrkanalige Bilder für das Modell und für die
Suchbilder verwendet werden, und falls der Parameter Metric Metric Metric Metric metric metric auf
'ignore_color_polarity' "ignore_color_polarity" "ignore_color_polarity" "ignore_color_polarity" "ignore_color_polarity" "ignore_color_polarity" gesetzt wird (siehe oben), muss das
Rauschen in einem Kanal noch mit der Wurzel der Anzahl der Kanäle
multipliziert werden, um MinContrast MinContrast MinContrast MinContrast minContrast min_contrast zu bestimmen. Falls die
Grauwerte in einem Kanal z.B. in einem Bereich von 10 Graustufen schwanken,
sollte MinContrast MinContrast MinContrast MinContrast minContrast min_contrast bei einem dreikanaligen Bild auf 17 gesetzt
werden. Falls das Modell später in sehr kontrastarmen Bildern erkannt werden
soll, muss MinContrast MinContrast MinContrast MinContrast minContrast min_contrast entsprechend klein gewählt werden. Falls das
Modell mit erheblichen Verdeckungen erkannt werden soll, sollte
MinContrast MinContrast MinContrast MinContrast minContrast min_contrast 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 zu gewährleisten.
Vollständige Vorabgenerierung des Modells
Optional kann in Optimization Optimization Optimization Optimization optimization optimization ein zweiter Wert übergeben
werden. Dieser Wert legt fest, ob das Modell vollständig vorab
generiert wird oder nicht. Der zweite Wert von
Optimization Optimization Optimization Optimization optimization optimization ist hierzu auf 'pregeneration' "pregeneration" "pregeneration" "pregeneration" "pregeneration" "pregeneration" oder
'no_pregeneration' "no_pregeneration" "no_pregeneration" "no_pregeneration" "no_pregeneration" "no_pregeneration" zu setzen. Falls der zweite Wert nicht
angegeben wird, wird der mit
set_system('pregenerate_shape_models',...) set_system("pregenerate_shape_models",...) SetSystem("pregenerate_shape_models",...) SetSystem("pregenerate_shape_models",...) SetSystem("pregenerate_shape_models",...) set_system("pregenerate_shape_models",...) eingestellte
Modus verwendet. Mit der Standardeinstellung
('pregenerate_shape_models' "pregenerate_shape_models" "pregenerate_shape_models" "pregenerate_shape_models" "pregenerate_shape_models" "pregenerate_shape_models" = 'false' "false" "false" "false" "false" "false" ) wird das
Modell nicht vollständig vorab generiert. Die vollständige
Vorabgenerierung des Modells führt im Normalfall zu leicht
geringeren Laufzeiten in find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model , da das
Modell nicht zur Laufzeit transformiert werden muss. Allerdings
sind in diesem Fall der Speicherbedarf und die Zeit, die zur
Modellerzeugung benötigt wird, wesentlich höher. Zu beachten ist
auch, dass in den zwei Modi nicht dieselben Ergebnisse erwartet
werden können, da intern bei der Transformation zur Laufzeit
notwendigerweise andere Daten für die transformierten Modelle
entstehen, als bei der Vorabgenerierung. Falls das Modell nicht
vorab generiert wird, werden z.B. in find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model
typischerweise leicht niedrigere Bewertungen (Scores)
zurückgeliefert, so dass es unter Umständen notwendig sein kann,
einen niedrigeren Wert für MinScore MinScore MinScore MinScore minScore min_score als bei vollständiger
Vorabgenerierung zu verwenden. Außerdem können sich die durch
Interpolation gewonnenen Subpixelpositionen geringfügig
unterscheiden. Falls höchste Genauigkeit gewünscht wird, sollte die
Lage des Modells mittels Ausgleichsrechnung (Least-Squares
Adjustment) bestimmt werden.
Falls eine vollständige Vorabgenerierung des Modells gewählt wird,
wird das Modell in dem gewählten Winkelbereich und
Skalierungsbereich vorab generiert und im Speicher abgelegt. Der
Speicherbedarf zur Speicherung des Modells ist also proportional zur
Anzahl der Winkelschritte, zur Anzahl der Skalierungsschritte und
zur Anzahl der Punkte im Modell. Wenn also AngleStep AngleStep AngleStep AngleStep angleStep angle_step oder
ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step zu klein bzw. AngleExtent AngleExtent AngleExtent AngleExtent angleExtent angle_extent oder der
Skalierungsbereich zu groß gewählt werden, kann es vorkommen, dass
das Modell nicht mehr in den (virtuellen) Speicher passt. In diesem
Fall muss entweder AngleStep AngleStep AngleStep AngleStep angleStep angle_step oder ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step größer
oder AngleExtent AngleExtent AngleExtent AngleExtent angleExtent angle_extent oder der Skalierungsbereich kleiner
gewählt werden. In jedem Fall ist es aus Laufzeitgründen
vorteilhaft, wenn das Modell komplett in den Hauptspeicher passt und
somit ein Paging durch das Betriebssystem vermieden werden kann. Da
die Möglichkeit zur subpixelgenauen Winkelbestimmung in
find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model gegeben ist, kann bei Modellen mit
einem Durchmesser von ca. 200 Pixeln AngleStep AngleStep AngleStep AngleStep angleStep angle_step >= 1° und ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step >= 0.02 gewählt werden.
Falls AngleStep AngleStep AngleStep AngleStep angleStep angle_step =
0 oder ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step = 'auto' "auto" "auto" "auto" "auto" "auto" übergeben wird, wählt
create_scaled_shape_model_xld create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld automatisch eine Schrittweite für
die Winkel bzw. Skalierungen basierend auf der Größe des Modells
aus. Die automatisch gewählten Schrittweiten können mit
get_shape_model_params get_shape_model_params GetShapeModelParams GetShapeModelParams GetShapeModelParams get_shape_model_params abgefragt werden.
Falls eine vollständige Vorabgenerierung des Modells nicht gewählt
wird, wird das Modell nur in einer Referenzlage auf jeder Ebene
erzeugt. In diesem Fall muss das Modell zur Laufzeit in
find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model auf die verschiedenen Winkel und
Skalierungen transformiert werden. Dadurch kann es vorkommen, dass
das Auffinden des Modells etwas mehr Zeit benötigt.
Es ist zu beachten, dass vorabgenerierte Modelle für eine spezifische
Bildgröße bestimmt sind. Aus Laufzeitgründen ist die Verwendung von Bildern
mit verschiedenen Größen während der Suche mit dem gleichen Modell nicht
parallel möglich. In diesem Fall müssen Kopien des gleichen Modells verwendet
werden. Anderenfalls kann das Programm abstürzen.
Achtung
Die XLD-Konturen, die in Contours Contours Contours Contours contours contours übergeben werden, sollten
in etwa auf die mittlere Größe skaliert worden sein, in der das Objekt
in den Suchbildern erscheint. Das Produkt
sollte also
etwa 1 ergeben.
Im Gegensatz zum Operator create_scaled_shape_model create_scaled_shape_model CreateScaledShapeModel CreateScaledShapeModel CreateScaledShapeModel create_scaled_shape_model ist es
nicht möglich die Mindestgröße der Modellkomponenten anzugeben. Um
kleine Modellkomponenten im Formmodell zu vermeiden, können kurze
Konturen vor dem Aufruf von create_scaled_shape_model_xld create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld
mit dem Operator select_contours_xld select_contours_xld SelectContoursXld SelectContoursXld SelectContoursXld select_contours_xld eliminiert werden.
Ausführungsinformationen
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.
Parameter
Contours Contours Contours Contours contours contours (input_object) xld_cont(-array) → object HXLDCont HObject HXLDCont Hobject
Eingabekonturen, die zum Aufbau des Modells verwendet
werden.
NumLevels NumLevels NumLevels NumLevels numLevels num_levels (input_control) integer → HTuple Union[int, str] HTuple Htuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)
Maximale Anzahl von Pyramidenebenen.
Defaultwert:
'auto'
"auto"
"auto"
"auto"
"auto"
"auto"
Werteliste: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'auto' "auto" "auto" "auto" "auto" "auto"
AngleStart AngleStart AngleStart AngleStart angleStart angle_start (input_control) angle.rad → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Kleinste auftretende Rotation des Musters.
Defaultwert: -0.39
Wertevorschläge: -3.14, -1.57, -0.79, -0.39, -0.20, 0.0
AngleExtent AngleExtent AngleExtent AngleExtent angleExtent angle_extent (input_control) angle.rad → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Ausdehnung des Winkelbereichs.
Defaultwert: 0.79
Wertevorschläge: 6.29, 3.14, 1.57, 0.79, 0.39
Restriktion: AngleExtent >= 0
AngleStep AngleStep AngleStep AngleStep angleStep angle_step (input_control) angle.rad → HTuple Union[float, str] HTuple Htuple (real / string) (double / string) (double / HString) (double / char*)
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 && AngleStep <= pi / 16
ScaleMin ScaleMin ScaleMin ScaleMin scaleMin scale_min (input_control) number → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Kleinste auftretende Skalierung des Musters.
Defaultwert: 0.9
Wertevorschläge: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Restriktion: ScaleMin > 0
ScaleMax ScaleMax ScaleMax ScaleMax scaleMax scale_max (input_control) number → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Größte auftretende Skalierung des Musters.
Defaultwert: 1.1
Wertevorschläge: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5
Restriktion: ScaleMax >= ScaleMin
ScaleStep ScaleStep ScaleStep ScaleStep scaleStep scale_step (input_control) number → HTuple Union[float, str] HTuple Htuple (real / string) (double / string) (double / HString) (double / char*)
Schrittweite der Skalierungen (Auflösung).
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: ScaleStep > 0
Optimization Optimization Optimization Optimization optimization optimization (input_control) string(-array) → HTuple MaybeSequence[str] HTuple Htuple (string) (string ) (HString ) (char* )
Art der Optimierung und optional Methode der
Modellgenerierung.
Defaultwert:
'auto'
"auto"
"auto"
"auto"
"auto"
"auto"
Werteliste: 'auto' "auto" "auto" "auto" "auto" "auto" , 'no_pregeneration' "no_pregeneration" "no_pregeneration" "no_pregeneration" "no_pregeneration" "no_pregeneration" , '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" , 'pregeneration' "pregeneration" "pregeneration" "pregeneration" "pregeneration" "pregeneration"
Metric Metric Metric Metric metric metric (input_control) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Art der zum Matchen verwendeten Metrik.
Defaultwert:
'ignore_local_polarity'
"ignore_local_polarity"
"ignore_local_polarity"
"ignore_local_polarity"
"ignore_local_polarity"
"ignore_local_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"
MinContrast MinContrast MinContrast MinContrast minContrast min_contrast (input_control) number → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Minimaler Kontrast des Objektes in den Suchbildern.
Defaultwert: 5
Wertevorschläge: 1, 2, 3, 5, 7, 10, 20, 30, 40
ModelID ModelID ModelID ModelID modelID model_id (output_control) shape_model → HShapeModel , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Handle des Modells.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
create_scaled_shape_model_xld create_scaled_shape_model_xld CreateScaledShapeModelXld CreateScaledShapeModelXld CreateScaledShapeModelXld create_scaled_shape_model_xld den Wert TRUE. Gegebenenfalls wird
eine Fehlerbehandlung durchgeführt. Wenn der Parameter
NumLevels NumLevels NumLevels NumLevels numLevels num_levels so gewählt wurde, dass das Modell zu wenige Punkte
besitzt, wird die Fehlermeldung 8510 zurückgeliefert.
Vorgänger
read_contour_xld_dxf read_contour_xld_dxf ReadContourXldDxf ReadContourXldDxf ReadContourXldDxf read_contour_xld_dxf ,
edges_sub_pix edges_sub_pix EdgesSubPix EdgesSubPix EdgesSubPix edges_sub_pix ,
select_contours_xld select_contours_xld SelectContoursXld SelectContoursXld SelectContoursXld select_contours_xld
Nachfolger
find_scaled_shape_model find_scaled_shape_model FindScaledShapeModel FindScaledShapeModel FindScaledShapeModel find_scaled_shape_model ,
find_scaled_shape_models find_scaled_shape_models FindScaledShapeModels FindScaledShapeModels FindScaledShapeModels find_scaled_shape_models ,
get_shape_model_params get_shape_model_params GetShapeModelParams GetShapeModelParams GetShapeModelParams get_shape_model_params ,
clear_shape_model clear_shape_model ClearShapeModel ClearShapeModel ClearShapeModel clear_shape_model ,
write_shape_model write_shape_model WriteShapeModel WriteShapeModel WriteShapeModel write_shape_model ,
set_shape_model_origin set_shape_model_origin SetShapeModelOrigin SetShapeModelOrigin SetShapeModelOrigin set_shape_model_origin ,
set_shape_model_param set_shape_model_param SetShapeModelParam SetShapeModelParam SetShapeModelParam set_shape_model_param ,
set_shape_model_metric set_shape_model_metric SetShapeModelMetric SetShapeModelMetric SetShapeModelMetric set_shape_model_metric ,
set_shape_model_clutter set_shape_model_clutter SetShapeModelClutter SetShapeModelClutter SetShapeModelClutter set_shape_model_clutter
Alternativen
create_shape_model_xld create_shape_model_xld CreateShapeModelXld CreateShapeModelXld CreateShapeModelXld create_shape_model_xld ,
create_aniso_shape_model_xld create_aniso_shape_model_xld CreateAnisoShapeModelXld CreateAnisoShapeModelXld CreateAnisoShapeModelXld create_aniso_shape_model_xld
Siehe auch
set_system set_system SetSystem SetSystem SetSystem set_system ,
get_system get_system GetSystem GetSystem GetSystem get_system
Modul
Matching