find_local_deformable_model
— Suche nach den besten Matches eines lokal deformierbaren Modells in einem
Bild.
find_local_deformable_model(Image : ImageRectified, VectorField, DeformedContours : ModelID, AngleStart, AngleExtent, ScaleRMin, ScaleRMax, ScaleCMin, ScaleCMax, MinScore, NumMatches, MaxOverlap, NumLevels, Greediness, ResultType, GenParamName, GenParamValue : Score, Row, Column)
Der Operator find_local_deformable_model
sucht die besten
NumMatches
Instanzen eines lokal deformierbaren Modells
ModelID
in dem Suchbild Image
. Die Modelle müssen vorher
durch create_local_deformable_model
oder
read_deformable_model
erzeugt worden sein.
Im Normalfall wird das Modell innerhalb des Definitionsbereiches
des Eingabebildes nur an den Stellen gesucht, an denen das
Modell vollständig in das Bild passt. Das bedeutet, dass das
Modell nicht gefunden werden kann, wenn es aus dem Bild
herausragt, selbst wenn es eine Bewertung größer als
MinScore
erreichen würde.
Außerdem kann es sein, dass das Modell, wenn es in einer der
Pyramidenebenen den Bildrand berührt, ebenfalls nicht gefunden wird,
auch wenn es im ursprünglichen Bild vollständig enthalten ist. Als
Daumenregel gilt hier, dass das Modell dann nicht gefunden werden
könnte, wenn seine Distanz zum Bildrand unter
fällt.
Dieses Verhalten
kann mit set_system('border_shape_models','true')
umgestellt
werden, so dass auch Modelle gefunden werden, die aus dem Bild
herausragen, falls sie eine Bewertung größer als MinScore
erreichen. Dabei werden Punkte außerhalb des Bildes als verdeckt
angesehen, d.h. sie verringern die Bewertung. Es ist zu beachten,
dass dieser Modus die Laufzeit der Suche erhöht.
Es ist weiter zu beachten, dass in seltenen
Fällen, die typischerweise nur in künstlichen Bildern auftreten,
auch dann kein Modell gefunden wird, wenn das Modell in einer
Pyramidenebene die reduzierte Bilddomäne berührt. In diesem Fall
kann es helfen, die Region der Domäne um
, z.B., mit
dilation_circle
zu vergrößern.
Der Operator
find_local_deformable_model
gibt die Zeilen Row
und Spalten
Column
der Koordinaten einer gefundenen Instanz zurück.
Zusätzlich kann ein rektifizierter Teil des Bildes, das entsprechende
Vektorfeld und die Konturen der gefundenen deformierten Modellinstanz in
ImageRectified
, VectorField
und DeformedContours
zurückgegeben werden. Die Voreinstellung ist, dass diese ikonischen Objekte
nicht zurückgegeben werden. In dem Fall das sie gebraucht werden muss
der Parameter ResultType
auf 'image_rectified',
'vector_field' und 'deformed_contours' gesetzt werden.
Die Größe von ImageRectified
und VectorField
ist das
kleinste achsenparallele Rechteck der ROI des Bildes, das verwendet wurde
um das lokal deformierbare Model mit create_local_deformable_model
zu erzeugen. Die Größe des rektifizierten Bildes und des Vektorfeldes
kann in alle Richtungen durch setzen von GenParamName
auf
'expand_border' und des entsprechenden GenParamValue
(die Anzahl
Pixel) vergrößert werden. Optional kann auch eine spezifische Richtung
durch 'expand_border_top', 'expand_border_bottom', 'expand_border_left' und
'expand_border_right' gesetzt werden. Es ist zu beachten, dass das
VectorField
vom semantischen Typ 'vector_field_absolute' ist und
damit in absoluten Koordinaten angegeben ist, und
convert_map_type
übergeben werden kann.
Die Glattheit der geschätzten Deformation kann durch setzen von
GenParamName
auf 'deformation_smoothness' angegeben
werden. Der Wert für 'deformation_smoothness' kann als Größe eines
Glättungsfilters der auf das Deformationsfeld angewendet wird,
verstanden werden. Ein sehr kleiner Wert erwartet eine starke
Deformation, ein sehr großer Wert ein rigides Objekt. Der minimale
Wert für 'deformation_smoothness' ist 3, ein typischer Wert ist
11. Für Fälle in denen nur sehr kleine globale Deformationen
erwartet werden, sollte der Wert weiter erhöht werden.
Zusätzlich wird in Score
die Bewertung der gefundenen
Instanzen zurückgegeben. Die Bewertung ist eine Zahl zwischen 0 und
1 und ist ein ungefähres Maß dafür, welcher Anteil des Modells im
Bild zu sehen ist.
Für eine weitere Erklärung des deformierbaren Modells und seiner Parameter
sei auf die Beschreibung in find_planar_uncalib_deformable_model
verwiesen.
Image
(input_object) (multichannel-)image →
object (byte / uint2)
Eingabebild, in dem das Modell gefunden werden soll.
ImageRectified
(output_object) (multichannel-)image(-array) →
object (byte / uint2)
Rektifizierter Bildausschnitt.
VectorField
(output_object) singlechannelimage(-array) →
object (vector_field)
Vektorfeld des gefundenen Modells.
DeformedContours
(output_object) xld_cont-array →
object
Die deformierten Konturen des gefundenen Modells.
ModelID
(input_control) deformable_model →
(handle)
Handle des Modells.
AngleStart
(input_control) angle.rad →
(real)
Kleinste auftretende Rotation des Modells.
Defaultwert: -0.39
Wertevorschläge: -3.14, -1.57, -0.79, -0.39, -0.20, 0.0
AngleExtent
(input_control) angle.rad →
(real)
Ausdehnung des Winkelbereichs.
Defaultwert: 0.79
Wertevorschläge: 6.29, 3.14, 1.57, 0.79, 0.39, 0.0
Restriktion: AngleExtent >= 0
ScaleRMin
(input_control) number →
(real)
Kleinste auftretende Skalierung des Modells in Zeilenrichtung.
Defaultwert: 1.0
Wertevorschläge: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Restriktion: ScaleRMin > 0
ScaleRMax
(input_control) number →
(real)
Größte auftretende Skalierung des Modells in Zeilenrichtung.
Defaultwert: 1.0
Wertevorschläge: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5
Restriktion: ScaleRMax >= ScaleRMin
ScaleCMin
(input_control) number →
(real)
Kleinste auftretende Skalierung des Modells in Spaltenrichtung.
Defaultwert: 1.0
Wertevorschläge: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Restriktion: ScaleCMin > 0
ScaleCMax
(input_control) number →
(real)
Größte auftretende Skalierung des Modells in Spaltenrichtung.
Defaultwert: 1.0
Wertevorschläge: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5
Restriktion: ScaleCMax >= ScaleCMin
MinScore
(input_control) real →
(real)
Minimale Bewertung der zu findenden Instanzen des Modells.
Defaultwert: 0.5
Wertevorschläge: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Typischer Wertebereich: 0
≤
MinScore
≤
1
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 0.05
NumMatches
(input_control) integer →
(integer)
Anzahl der zu findenden Instanzen des Modells (oder 0 für alle Treffer).
Defaultwert: 1
Wertevorschläge: 0, 1, 2, 3, 4, 5, 10, 20
MaxOverlap
(input_control) real →
(real)
Maximale Überlappung der zu findenden Instanzen des Modells.
Defaultwert: 1.0
Wertevorschläge: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Typischer Wertebereich: 0
≤
MaxOverlap
≤
1
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 0.05
NumLevels
(input_control) integer →
(integer)
Anzahl der verwendeten Pyramidenebenen.
Defaultwert: 0
Werteliste: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Greediness
(input_control) real →
(real)
„Gierigkeit“ der Suchheuristik (0: sicher aber langsam; 1: schnell aber Matches können „übersehen“ werden).
Defaultwert: 0.9
Wertevorschläge: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Typischer Wertebereich: 0
≤
Greediness
≤
1
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 0.05
ResultType
(input_control) string-array →
(string)
Die zu berechnenden ikonischen Ergebnisse.
Defaultwert: []
Werteliste: [], 'deformed_contours' , 'image_rectified' , 'vector_field'
GenParamName
(input_control) string-array →
(string)
Namen der generischen Parameter.
Defaultwert: []
Werteliste: [], 'angle_step' , 'deformation_smoothness' , 'expand_border' , 'expand_border_bottom' , 'expand_border_left' , 'expand_border_right' , 'expand_border_top' , 'scale_c_step' , 'scale_r_step' , 'subpixel'
GenParamValue
(input_control) integer-array →
(integer / real / string)
Werte der generischen Parameter.
Defaultwert: []
Werteliste: [], 'least_squares' , 'least_squares_high' , 'least_squares_very_high' , 'none'
Score
(output_control) real-array →
(real)
Bewertung der gefundenen Instanzen des Modells.
Row
(output_control) real-array →
(real)
Zeilenkoordinate des gefundenen Modells.
Column
(output_control) real-array →
(real)
Spaltenkoordinate des gefundenen Modells.
Sind die Parameterwerte korrekt, dann liefert
find_local_deformable_model
den Wert 2 (H_MSG_TRUE). Gegebenenfalls
wird eine Fehlerbehandlung durchgeführt.
create_local_deformable_model
,
create_local_deformable_model_xld
,
read_deformable_model
Matching