set_stereo_model_param
— Parameter eines Stereomodells setzen.
set_stereo_model_param( : : StereoModelID, GenParamName, GenParamValue : )
Mit dem Operator set_stereo_model_param
können
diverse Parameter im Stereomodell StereoModelID
gesetzt werden.
Dabei werden in Abhängigkeit des mit create_stereo_model
gesetzten
Typs des Stereomodells verschiedene Typen von Parametern zur Verfügung
gestellt. Weiterhin ist zu beachten, dass keine spezifischen Parameter für
die Methode 'points_3d' zur Verfügung stehen.
Je nach Auswahl im GenParamName
können die folgenden generischen
Modellparameter auf den Wert im Parameter GenParamValue
gesetzt werden:
Durch Übergabe des Tupels [x1,y1,z1,x2,y2,z2]
können
die zwei gegenüberliegenden Eckpunkte P1=[x1,y1,z1]
bzw.
P2=[x2,y2,z2]
des kleinsten umschließenden Quaders für
die Stereorekonstruktion übergeben werden.
Dieser Quader ist achsenparallel im Koordinatensystem
des Kamerasetups definiert (vorgegeben mit dem Handle
CameraSetupModelID
beim Erstellen des Stereomodells
mit create_stereo_model
). Der entsprechende
Rekonstruktionsalgorithmus schneidet Rekonstruktionsergebnisse
weg, welche außerhalb dieses Quaders liegen.
Darüber hinaus wird der umschließende Quader vom Operator
reconstruct_surface_stereo
benötigt, um den Disparitätsbereich
einzelner Bildpaare bestimmen zu können (siehe
set_stereo_model_image_pairs
für weitere Informationen).
Weiterhin ist zu beachten, dass für Stereomodelle vom Typ 'surface_fusion' die Werte für die Parameter beim Umsetzen des umschließenden Quaders auf den Standardwert zurückgesetzt werden.
Die Prozedur estimate_bounding_box_3d_reconstruction
kann benutzt werden, um initiale Werte für den umschließenden Quader
Ihrer 3D Rekonstruktion zu erhalten. Dieser umschließende Quader basiert
dann auf der Pose einer Referenzkalibrierplatte und den Sichtkegeln
der Kameras. Später sollte der umschließende Quader dann so eng
wie möglich um das zu rekonstruierende Objekt eingestellt werden.
Außerdem können die Prozeduren gen_bounding_box_object_model_3d
und gen_camera_setup_object_model_3d
benutzt werden, um das
Kamerasetup zu visualisieren.
Bei einem gültigen Quader liegt der Punkt P1
an der Ecke
vorne links unten und der Punkt P2
hinten rechts oben; d.h.
x1<x2
, y1<y2
und z1<z2
. Während
die Oberflächenrekonstruktion (siehe reconstruct_surface_stereo
)
bei ungültigen Quadereinstellung abbricht und einen Fehler zurückgibt,
wird der Punktrekonstruktionsalgorithmus (siehe
reconstruct_points_stereo
) einen ungültigen Quader einfach
auslassen und wird alle Punkte rekonstruieren, die er kann. Daher kann
das Abschneiden von 3D-Punkten ausgeschaltet werden, indem ein
Tupel [0,0,0,0,0,-1]
als kleinster umschließender Quader
eingegeben wird.
Es ist zu beachten, dass 'bounding_box' ein tupelwertiger
Parameter ist und daher nicht zusammen mit anderen Parametern in einem
Aufruf des Operators set_stereo_model_param
gesetzt werden
kann (siehe Paragraph "Bemerkung über tupelwertige
Modellparameter").
Um das Einstellen des umschließenden Quaders zu erleichtern, stehen die
Prozeduren gen_bounding_box_object_model_3d
und
gen_camera_setup_object_model_3d
zur Verfügung. Mithilfe
dieser Prozeduren kann man das Kamerasetup visualisieren und
beispielsweise den umschließenden Quader anfänglich so einstellen, dass
nur der Bereich rekonstruiert wird, in dem sich die Sichtkegel der Kameras
überschneiden. Später sollte der umschließende Quader dann so eng
wie möglich um das zu rekonstruierende Object eingestellt werden.
Tupelformat: [x1,y1,z1,x2,y2,z2]
Schaltet den 'persistence' -Modus des
Stereomodells ein (GenParamValue
=1) oder aus
(GenParamValue
=0).
Im eingeschalteten Modus speichert das Modell Zwischenergebnisse
des Rekonstruktionsverfahren (nur für
reconstruct_surface_stereo
), die im Nachhinein mit dem
Operator get_stereo_model_object
und
and get_stereo_model_object_model_3d
abgefragt werden können.
Es ist zu beachten, dass das Modell in diesem Modus einen erheblichen Speicherbedarf aufweisen kann. Das kann die Leistung des Rekonstruktionsalgorithmus mindern oder sogar dazu führen, dass kein Speicher mehr angefordert werden kann. Das kann insbesondere der Fall sein bei Kamerasetups mit besonders vielen Kameras und/oder großen Bildern. Dementsprechend ist es empfehlenswert, den Modus nur zur Verifizierung der Ergebnisse einzuschalten.
Werteliste:
0 (Standardwert)
, 1
Je nach Auswahl in GenParamName
können die folgenden
Parameter der Oberflächenrekonstruktion (d.h. für Modelle des Typs
'surface_pairwise' sowie 'surface_fusion' ) zusätzlich mit
dem Parameter GenParamValue
gesetzt werden:
Legt fest, ob das rekonstruierte 3D-Objektmodell Farbinformationen
aufweisen soll oder nicht ('none' ). Für den Fall, dass
Farbinformationen gewünscht werden, so muss zur Farbgebung eine der
bereitgestellten Methoden (siehe Werteliste) ausgewählt werden.
Siehe reconstruct_surface_stereo
zum Zugriff auf die berechnete
Farbinformation.
Der Farbwert eines 3D-Punktes wird über den Median der Farbwerte aller Kameras gebildet, in denen der 3D-Punkt sichtbar ist.
Der Farbwert eines 3D-Punktes entspricht dem Farbwert der Kamera, die die kürzeste Distanz zu diesem Punkt aufweist.
Die Kameras werden gemäß ihres Abstandes zum rekonstruierten 3D-Punkt gewichtet. Dabei erhalten Kameras mit einem kürzeren Abstand ein höheres Gewicht als solche, die weiter weg sind. Der Farbwert eines 3D-Punktes wird dann über Mittelung der gewichteten Farbwerte bestimmt.
Der Farbwert eines 3D-Punktes entspricht dem Farbwert der Kamera, die den kleinsten Winkel zwischen der Oberflächennormalen und dem Sichtstrahl aufweist.
Die Kameras werden gemäß ihres Winkels zwischen der Oberflächennormalen und dem Sichtstrahl gewichtet. Dabei erhalten Kameras mit einem kleineren Winkel ein höheres Gewicht. Der Farbwert eines 3D-Punktes wird dann über Mittelung der gewichteten Farbwerte bestimmt.
Werteliste:
'none' (Standardwert)
,
'smallest_distance' ,
'mean_weighted_distances' ,
'line_of_sight' ,
'mean_weighted_lines_of_sight' ,
'median'
Falls bei der Rekonstruktion ein Stereomodell vom Typ 'surface_fusion' verwendet wurde, so werden Punkte rekonstruiert, die keine direkte Korrespondenz zu Punkten im Bild haben. Diese Punkte sind somit unsichtbar, da sie von keiner Kamera aus gesehen werden. Für diese Punkte wird Farbinformation anhand von Punkten in der Umgebung berechnet. Einfärben der unsichtbaren Punkte kann durch Setzen dieses Parameters auf 'false' abgeschaltet werden. In diesem Fall werden die Farbwerte von unsichtbaren Punkten auf 255 gesetzt. Im Normalfall ist das Einfärben der unsichtbaren Punkte nicht sehr zeitaufwändig und kann aktiviert bleiben. Es kann jedoch passieren, dass der Wert für den Parameter 'resolution' viel zu fein für die vorliegende Bildauflösung eingestellt wurde. In diesem Fall werden sehr viele unsichtbare 3D-Punkte rekonstruiert, was zu einer sehr zeitaufwändigen Nachbarschaftssuche führt. Um eine stark erhöhte Laufzeit zu vermeiden, sollte entweder der Parameter 'resolution' angepasst werden oder die Bestimmung der Farbwerte für unsichtbare Punkte deaktiviert werden. Es ist zu beachten, dass das Setzen dieses Parameters keine Auswirkungen auf Stereomodelle des Typs 'surface_pairwise' hat.
Werteliste:
'true' (Standardwert)
,
'false'
Interpolationsmodus für die Bildpaarrektifizierung (siehe
set_stereo_model_image_pairs
). Es ist zu beachten, dass
nach Änderung dieser Einstellung der Operator
set_stereo_model_image_pairs
erneut aufgerufen werden muss,
um diese Einstellung wirksam werden zu lassen.
Werteliste:
'none' (Standardwert)
,
'bilinear'
Abtastfaktor für die Bildpaarrektifizierung (siehe
set_stereo_model_image_pairs
). Es ist zu beachten, dass,
nach Änderung dieser Einstellung der Operator
set_stereo_model_image_pairs
erneut aufgerufen werden muss,
um diese Einstellung wirksam werden zu lassen.
Wertevorschläge:
0.5, 0.66, 1.0
(Standardwert)
, 1.5,
2.0, 3.0, 4.0
Rektifizierungsmethode für die Bildpaarrektifizierung (siehe
set_stereo_model_image_pairs
). Es ist zu beachten, dass
nach Änderung dieser Einstellung der Operator
set_stereo_model_image_pairs
erneut aufgerufen werden muss,
um diese Einstellung wirksam werden zu lassen.
Werteliste:
'viewing_direction' (Standardwert)
,
'geometric'
Methode zur Berechnung der Disparitätsbilder der Bildpaare
(siehe reconstruct_surface_stereo
). Zur Berechnung stehen die
drei Methoden 'binocular' , 'binocular_mg' und
'binocular_ms' zur Verfügung. Je nachdem welche der
drei Methoden ausgewählt wurde, wird intern der entsprechende
HALCON-Operator binocular_disparity
,
binocular_disparity_mg
bzw. binocular_disparity_ms
aufgerufen.
Werteliste: 'binocular' (Standardwert)
,
'binocular_mg' , 'binocular_ms'
Bei den Methoden 'binocular_mg' und 'binocular_ms' werden die Disparitäten deren Qualitätsmaß oberhalb der angegebenen Schwelle liegen von der Weiterverarbeitung ausgeschlossen und landen nicht in der rekonstruierten 3D-Punktwolke. Bei der Methode 'binocular' werden die Disparitäten unterhalb der angegebenen Schwelle ausgeschlossen.
Für Stereomodelle mit der Methode 'binocular':
Werteliste: Positive und negative Integer- oder Float-Werte
Defaultwert: 0.5
Für Stereomodelle mit der Methode 'binocular_mg' oder 'binocular_ms':
Werteliste: Integer- oder Float-Werte größer gleich 0.0
Defaultwert: -1
Je nachdem, welche Methode zur Berechnung der Disparitätsbilder ausgewählt
wurde, stehen dem Benutzer zusätzliche Parameter zur Verfügung, die
ein genaueres Anpassen an den verwendeten Datensatz erlauben. Eine
genauere Beschreibung der Parameter kann in der jeweiligen
Operator-Referenz von binocular_disparity
,
binocular_disparity_mg
oder binocular_disparity_ms
nachgelesen werden.
Parameter für Stereomodelle mit Methode = 'binocular'
Setzt die gewünschte Matchingmethode.
Werteliste: 'ncc' , 'sad' , 'ssd'
Defaultwert: 'ncc'
Anzahl der verwendeten Bildpyramiden.
Werteliste: Integer-Wert größer gleich 1
Defaultwert: 1
Breite des Korrelationsfensters.
Werteliste: Ungerade Integer-Werte größer gleich 3
Defaultwert: 11
Höhe des Korrelationsfensters.
Werteliste: Ungerade Integer-Werte größer gleich 3
Defaultwert: 11
Schwellwert der Grauwertvarianz.
Werteliste: Integer- oder Float-Werte größer gleich 0.0
Defaultwert: 0.0
Nachgelagerter Ergebnisfilter.
Werteliste: 'none' , 'left_right_check'
Defaultwert: 'none'
Subpixel Interpolation der Disparitäten.
Werteliste: 'none' , 'interpolation'
Defaultwert: 'none'
Parameter für Stereomodelle mit Methode = 'binocular_mg'
Gewicht der Grauwerterhaltung im Datenterm.
Werteliste: Integer- oder Float-Werte größer gleich 0.0
Defaultwert: 1.0
Gewicht der Gradientenerhaltung im Datenterm.
Werteliste: Integer- oder Float-Werte größer gleich 0.0
Defaultwert: 30.0
Gewicht des Glattheitsterms bezüglich des Datenterms.
Werteliste: Integer- oder Float-Werte größer 0.0
Defaultwert: 5.0
Startwert für die Disparität.
Werteliste: Integer- oder Float-Werte
Defaultwert: 0.0
Die nachfolgenden Parameter steuern das Verhalten des verwendeten Mehrgitterverfahrens.
Setzt vordefinierte Parameterwerte für die Parameter des verwendeten
Mehrgitterverfahren.
'binocular_mg_solver' , 'binocular_mg_cycle_type' ,
'binocular_mg_pre_relax' ,
'binocular_mg_post_relax' ,
'binocular_mg_initial_level' ,
'binocular_mg_iterations' ,
'binocular_mg_pyramid_factor' . Die genauen Werte der
Parameter lassen sich der Operator-Referenz von
binocular_disparity_mg
entnehmen.
Werteliste: 'very_accurate' , 'accurate' , 'fast_accurate' , 'fast'
Defaultwert: 'fast_accurate'
Lösungsverfahren für die linearen Gleichungssysteme.
Werteliste: 'multigrid' ,'full_multigrid' , 'gauss_seidel'
Defaultwert: 'full_multigrid'
Wählt den Rekursionstyp des Mehrgitterverfahrens aus.
Werteliste: 'v' ,'w' , 'none'
Defaultwert: 'v'
Setzt für Mehrgitterverfahren die Anzahl der Gauß-Seidel-Iterationen beim Vorglätten, bzw. beim Gauß-Seidel-Verfahren die Anzahl an Iterationen beim Lösen des Gleichungssystems.
Werteliste: Integer- oder Float-Werte größer 0.0
Defaultwert: 1
Setzt für Mehrgitterverfahren die Anzahl der Gauß-Seidel-Iterationen beim Nachglätten.
Werteliste: Integer- oder Float-Werte
Defaultwert: 1
Legt die gröbste zu verwendende Stufe der Bildpyramide beim Grob-zu-Fein-Verfahren fest.
Werteliste: Integer-Werte
Defaultwert: -2
Anzahl an Fixpunkt-Iterationen pro Ebene.
Werteliste: Integer- oder Float-Werte größer gleich 0
Defaultwert: 1
Skalierungsfaktor für die Bildpyramide des Grob-zu-Fein-Verfahrens.
Werteliste: Integer- oder Float-Werte im Bereich von 0.1 und 0.9
Defaultwert: 0.6
Parameter für Stereomodelle mit Methode = 'binocular_ms'
Glättung von Oberflächen.
Werteliste: Integer-Werte größer gleich 0
Defaultwert: 50
Glättung von Kanten.
Werteliste: Integer-Werte größer gleich 0
Defaultwert: 50
Steuert das Verhalten, ob nur noch diejenigen Disparitätswerte zurückgegeben werden, die bei einer Suche eines Referenzmusters in beiden Bildern übereinstimmend gefunden werden.
Werteliste: 'true' , 'false'
Defaultwert: 'true'
Legt die Methode des Ähnlichkeitsmaßes fest.
Werteliste: 'census_dense' , 'census_sparse'
Defaultwert: 'census_dense'
Sollen kontinuierliche Werte aus den bisher ganzzahligen Disparitätswerten geschätzt werden?
Werteliste: 'true' , 'false'
Defaultwert: 'true'
Schaltet den Vermaschungsnachbearbeitungsschritt der
Oberflächenrekonstruktion ein oder aus. Wird ein Stereomodell vom Typ
'surface_pairwise' verwendet, wird ein
Poisson-basierter Vermaschungsalgorithmus unterstützt.
Für Stereomodelle vom Typ 'surface_fusion' wird nur eine
Vermaschung der Isofläche angeboten. (siehe
reconstruct_surface_stereo
für weitere Informationen).
Werteliste:
'none' (Standardwert)
,
'poisson' , 'isosurface'
Wenn die Poisson-basierte Vermaschung eingeschaltet ist, können die folgenden Parameter eingestellt werden:
'poisson_depth' : Tiefe des Poisson-Octrees. Ein tieferer Octree führt zu höherer Vermaschungauflösung, aber auch zu erheblich höherem Zeit- und Speicherbedarf.
Wertevorschläge:
6,
8 (Standardwert)
,
10
Restriktion:
3 <= 'poisson_depth' <=
12
'poisson_solver_divide' : Tiefe des eingesetzten Block-Gauss-Seidel-Algorithmus, der zur Lösung des Poissongleichungen benutzt wird. Bei kleinem zusätzlichen Zeitbedarf schafft dieser Algorithmus erhebliche Speicherersparnisse. Die optimalen Werte für diesen Parameter sind um 0 bis 2 kleiner als die Tiefe des Octrees.
Wertevorschläge
6, 8 (Standardwert)
,
10
Restriktion:
3 <= 'poisson_solver_divide'
<= 'poisson_depth'
'poisson_samples_per_node' : Mindestanzahl von Punkten, welche in einem Octree-Blatt angesammelt werden. Dieser Parameter wird benutzt, um verrauschte Daten zu behandeln, d.h. rauschfreie Daten können auf mehrere Blätter verteilt werden, während verrauschte Daten eher auf weniger Blätter verteilt werden sollten, um das Rauschen kompensieren zu können. Ein Seiteneffekt ist, dass größere Werte dieses Parameters allgemein zu kleineren Octrees führen, was wiederum die Vermaschung beschleunigt, aber auch eine kleinere Rekonstruktionsauflösung nach sich zieht.
Wertevorschläge:
1, 5, 10,
30 (Standardwert)
,
40
Alle Parameter bis auf 'binocular_mg_default_parameters' können im
Nachhinein mit dem Operator get_stereo_model_param
abgefragt
werden.
Unter Verwendung eines Stereomodells des Typs 'surface_pairwise'
kann durch das Setzen von GenParamName
auf den folgenden Wert,
die Oberflächenrekonstruktion gesteuert werden:
Abtastschritt für die X-, Y- und Z-Bilddaten, welche als Ergebnis
der paarweisen Disparitätsberechnung entstehen, bevor diese Daten in
die Oberflächenrekonstruktion einfließen (siehe
reconstruct_surface_stereo
).
Wertevorschläge:
1, 2 (Standardwert)
,
3
Unter Verwendung eines Stereomodells des Typs 'surface_fusion'
kann durch das Setzen von GenParamName
auf einen der folgenden Werte,
die Oberflächenrekonstruktion gesteuert werden:
Legt die Distanz zwischen benachbarten Abtastpunkten in jede
Koordinatenrichtung des diskretisierten umschließenden Quaders fest.
'resolution' wird in [m] gesetzt.
Siehe reconstruct_surface_stereo
für weitere Details.
Zu kleine Werte erhöhen die Laufzeit der Rekonstruktion unnötigerweise. Zu große Werte haben eine Rekonstruktion mit fehlenden Details zur Folge. Standardmäßig wird die Auflösung in Abhängigkeit des umschließenden Quaders auf einen recht groben Wert gesetzt. Die Auflösung wird bei einem Umsetzen des umschließenden Quaders zurückgesetzt.
Eventuell muss 'smoothing' angepasst werden, wenn 'resolution' verändert wird. Der Wert für den Parameter 'surface_tolerance' sollte in jedem Fall etwas größer als der Wert für 'resolution' sein, um Diskretisierungseffekte zu vermeiden.
Vorgeschlagene Werte:
0.001, 0.01
Legt fest, wieviel Rauschen um die Eingangspunktwolke
zu einer Oberfläche zusammengefügt werden
soll. Punkte im Sichtkegel einer Kamera werden als sicher außerhalb
des Objekts (vor der Oberfläche) oder sicher innerhalb des Objekts
(hinter der Oberfläche) angesehen bezüglich dieser Kamera, wenn ihr
Abstand zur ursprünglichen Oberfläche 'surface_tolerance'
übersteigt.
'surface_tolerance' wird in [m] gesetzt.
Siehe reconstruct_surface_stereo
für weitere Details und eine
Abbildung.
Zu kleine Werte führen zu einer unebenen Oberfläche, während hingegen zu große Werte eigentlich getrennte Oberflächen zu einer verschmelzen lassen. Standardmäßig ist der Wert für 'surface_tolerance' auf das dreifache der Auflösung gesetzt. Ein Umsetzen des umschließenden Quaders hat das Zurücksetzen des Parameters zur Folge.
Weiterhin sollte der Wert für 'surface_tolerance' immer etwas größer als der Wert für die Auflösung sein, um Diskretisierungseffekte zu vermeiden. Zudem darf der Wert für 'min_thickness' nie kleiner werden als der Wert für 'surface_tolerance' . Wird 'min_thickness' zu niedrig gesetzt, so wird 'surface_tolerance' automatisch auf denselben Wert wie 'min_thickness' gesetzt. Wird 'surface_tolerance' zu hoch gesetzt, so wird ein Fehler zurückgegeben.
Vorgeschlagene Werte:
0.003, 0.03
Restriktion:
'surface_tolerance' <
'min_thickness'
Bestimmt die Länge des zu berücksichtigenden Sichtkegels einer Kamera
hinter der mit der paarweisen Rekonstruktion erstellten Oberfläche.
Punkte hinter der Oberfläche (von der gegebenen Kamera aus gesehen)
werden nur als sicher innerhalb des Objekts angesehen, wenn ihr
Abstand zur ursprünglichen Oberfläche 'min_thickness'
nicht übersteigt.
'min_thickness' wird in [m] gesetzt.
Siehe reconstruct_surface_stereo
für weitere Details und eine
Abbildung.
Falls davon ausgegangen werden kann, dass die Sichtstrahlen das zu rekonstruierende geschlossene Objekt nur ein einziges Mal durchschneiden (z.B. falls alle Kameras das Objekt nur von einer Seite aus betrachten), sollte der Parameter auf seinem Standardwert belassen werden. Falls davon ausgegangen werden kann, dass die Sichtstrahlen das zu rekonstruierende Objekt mehr als einmal durchschneiden (z.B. wenn die Kameras das Objekt von verschiedenen Seiten aus betrachten), so sollte nur das Innere des Objektes als hinter der Oberfläche liegend markiert werden. Der Parameter sollte dann zunächst auf einen Wert gesetzt werden, der kleiner ist als die Dicke des zu rekonstruierenden Objekts.
Die Methode 'surface_fusion' versucht stets, geschlossene Oberflächen zu erzeugen. Werden mehrere verschiedene Objekte nur von einer Seite aus betrachtet, kann es sinnvoll sein, 'min_thickness' zu verkleinern, um die Tiefe der rekonstruierten Objekte zu beschränken und damit zu verhindern, dass sie zu einer einzigen Oberfläche verschmelzen. Da in diesem Fall die Rückseite der Objekte nicht betrachtet wird, ist ihre Rekonstruktion wahrscheinlich nicht korrekt.
Wird der Parameters auf zu kleine Werte gesetzt, so weist die Punktwolke entweder Löcher oder doppelte Wände auf. Stellt man hingegen zu große Werte ein, so äußert sich das in einer verzerrten Punktwolke oder einem Aufblasen der Oberfläche in Richtung der Außenseite des Objekts. Wird die Oberfläche so stark aufgeblasen, dass sie außerhalb des umschließenden Quaders liegt, so werden keine Punkte rekonstruiert. Der Wert des Parameters wird bei einem Umsetzen des umschließenden Quaders ebenfalls zurückgesetzt.
Der Wert für 'min_thickness' darf nie kleiner werden als der Wert für 'surface_tolerance' . Wird 'min_thickness' zu niedrig gesetzt, so wird 'surface_tolerance' automatisch auf denselben Wert wie 'min_thickness' gesetzt. Wird 'surface_tolerance' zu hoch gesetzt, so wird ein Fehler zurückgegeben.
Vorgeschlagene Werte:
0.005, 0.05
Legt fest, wie wichtig eine kleine Totalvariation der Distanzfunktion
gegenüber der Datentreue zur Eingabepunktwolke für den Algorithmus ist.
Damit kann also die 'Unruhe' der rekonstruierten Oberfläche durch den
Glättungsparameter 'smoothing' gesteuert werden
(siehe reconstruct_surface_stereo
für weitere Details).
Der gewünschte Wert des Parameters für einen bestimmten Datensatz muss durch Ausprobieren gefunden werden. Zu kleine Werte für diesen Parameter führen dazu, dass die Oberfläche viele Ausreißer enthält. Dies ist sogar dann der Fall, wenn die Oberfläche deswegen große Sprünge aufweist. Zu große Werte hingegen führen dazu, dass der Algorithmus sich nicht mehr auf die Eingangspunktwolke, welche durch die paarweise Rekonstruktion erstellt wurde stützt. (Wie der Algorithmus die Distanzen zur Eingangspunktwolke behandelt hängt dabei stark von 'surface_tolerance' und 'min_thickness' ) ab.
Der Wert des Parameters wird bei einem Umsetzen des umschließenden Quaders ebenfalls zurückgesetzt. Eventuell muss 'smoothing' angepasst werden, wenn 'resolution' verändert wird.
Vorgeschlagene Werte:
15.0, 1.0
(default)
, 0.1
Die meisten der Stereomodellparameter haben nur einen Wert. In diesem
Fall kann man eine Liste (d.h. ein Tupel) von Parameternamen und eine Liste
(Tupel) derselben Länge von Parameterwerten übergeben.
Tupelwertige Parameter dagegen brauchen eine Liste von Werten.
Wenn so ein Parameter mit einwertigen Parametern
gemeinsam gesetzt wird, kann nicht mehr unterschieden werden, welcher
Wert zu welchem Parameternamen gehört. Deswegen können tupelwertige
Parameter wie 'bounding_box' immer nur einzeln mit
set_stereo_model_param
gesetzt werden.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
StereoModelID
(input_control, Zustand wird modifiziert) stereo_model →
(handle)
Handle des Stereomodells.
GenParamName
(input_control) attribute.name(-array) →
(string)
Namen der Modellparameter.
Werteliste: 'binocular_filter' , 'binocular_mask_height' , 'binocular_mask_width' , 'binocular_method' , 'binocular_mg_cycle_type' , 'binocular_mg_default_parameters' , 'binocular_mg_gradient_constancy' , 'binocular_mg_gray_constancy' , 'binocular_mg_initial_guess' , 'binocular_mg_initial_level' , 'binocular_mg_iterations' , 'binocular_mg_post_relax' , 'binocular_mg_pre_relax' , 'binocular_mg_pyramid_factor' , 'binocular_mg_smoothness' , 'binocular_mg_solver' , 'binocular_ms_consistency_check' , 'binocular_ms_edge_smoothing' , 'binocular_ms_similarity_measure' , 'binocular_ms_sub_disparity' , 'binocular_ms_surface_smoothing' , 'binocular_num_levels' , 'binocular_score_thresh' , 'binocular_sub_disparity' , 'binocular_texture_thresh' , 'bounding_box' , 'color' , 'color_invisible' , 'disparity_method' , 'min_thickness' , 'persistence' , 'point_meshing' , 'poisson_depth' , 'poisson_samples_per_node' , 'poisson_solver_divide' , 'rectif_interpolation' , 'rectif_method' , 'rectif_sub_sampling' , 'resolution' , 'smoothing' , 'sub_sampling_step' , 'surface_tolerance'
GenParamValue
(input_control) attribute.value-array →
(real / integer / string)
Werte der Modellparameter.
Wertevorschläge: 1, -2, -5, 0, 0.3, 0.5, 0.9, 1, 2, 3, 'census_dense' , 'census_sparse' , 'binocular' , 'ncc' , 'none' , 'sad' , 'ssd' , 'bilinear' , 'false' , 'viewing_direction' , 'geometric' , 'very_accurate' , 'accurate' , 'fast_accurate' , 'fast' , 'v' , 'w' , 'none' , 'gauss_seidel' , 'multigrid' , 'true' , 'poisson' , 'isosurface' , 'interpolation' , 'left_right_check' , 'full_multigrid' , 'binocular_mg' , 'binocular_ms' , 'smallest_distance' , 'mean_weighted_distances' , 'line_of_sight' , 'mean_weighted_lines_of_sight' , 'median'
reconstruct_surface_stereo
,
reconstruct_points_stereo
get_stereo_model_param
,
set_stereo_model_image_pairs
3D Metrology