Name
binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMs — Berechnet die Disparität für ein rektifiziertes Stereobildpaar mit Hilfe
von Multi-Scanline-Optimierung.
Herror binocular_disparity_ms(const Hobject ImageRect1, const Hobject ImageRect2, Hobject* Disparity, Hobject* Score, const Hlong MinDisparity, const Hlong MaxDisparity, const Hlong SurfaceSmoothing, const Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue)
Herror T_binocular_disparity_ms(const Hobject ImageRect1, const Hobject ImageRect2, Hobject* Disparity, Hobject* Score, const Htuple MinDisparity, const Htuple MaxDisparity, const Htuple SurfaceSmoothing, const Htuple EdgeSmoothing, const Htuple GenParamName, const Htuple GenParamValue)
void BinocularDisparityMs(const HObject& ImageRect1, const HObject& ImageRect2, HObject* Disparity, HObject* Score, const HTuple& MinDisparity, const HTuple& MaxDisparity, const HTuple& SurfaceSmoothing, const HTuple& EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue)
HImage HImage::BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const
HImage HImage::BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HString& GenParamName, const HString& GenParamValue) const
HImage HImage::BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue) const
static void HOperatorSet.BinocularDisparityMs(HObject imageRect1, HObject imageRect2, out HObject disparity, out HObject score, HTuple minDisparity, HTuple maxDisparity, HTuple surfaceSmoothing, HTuple edgeSmoothing, HTuple genParamName, HTuple genParamValue)
HImage HImage.BinocularDisparityMs(HImage imageRect2, out HImage score, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, HTuple genParamName, HTuple genParamValue)
HImage HImage.BinocularDisparityMs(HImage imageRect2, out HImage score, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, string genParamName, string genParamValue)
binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMsBinocularDisparityMs berechnet die Disparität zwischen
zwei rektifizierten Stereobildern ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 und
ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 mit Hilfe von Multi-Scanline-Optimierung. Das
resultierende Disparitätsbild wird in DisparityDisparityDisparityDisparitydisparity zurückgegeben.
Im Gegensatz zu binocular_distance_msbinocular_distance_msBinocularDistanceMsBinocularDistanceMsBinocularDistanceMs wird das Ergebnis nicht in
Abstandswerte umgerechnet.
Für diese Aufgabe können die drei Operatoren binocular_disparitybinocular_disparityBinocularDisparityBinocularDisparityBinocularDisparity,
binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMgBinocularDisparityMg und binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMsBinocularDisparityMs
verwendet werden. binocular_disparitybinocular_disparityBinocularDisparityBinocularDisparityBinocularDisparity liefert robuste Ergebnisse
in gut texturierten Bereichen, doch scheitert auf schwachen Texturen.
binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMgBinocularDisparityMg interpoliert schwach texturierte Bereiche,
doch glättet Disparitätssprünge. binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMsBinocularDisparityMs bewahrt
Disparitätssprünge und interpoliert teilweise.
Die Eingabeparameter ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 und ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 müssen
ein Paar rektifizierter Stereobilder darstellen, d.h. korrespondierende
Punkte müssen in derselben Zeile liegen. Falls diese Annahme
nicht zutrifft, können die Bilder mit den Operatoren
calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras, gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMapGenBinocularRectificationMap
und map_imagemap_imageMapImageMapImageMapImage rektifiziert werden.
Die Breiten von ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 und ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 können
sich unterscheiden, die Höhe muss jedoch übereinstimmen.
Für ein Pixel in ImageRect1ImageRect1ImageRect1ImageRect1imageRect1
wird das homologe Pixel in ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 ausgewählt, indem
die entsprechende Zeile in ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 abgesucht wird
und beide Pixel basierend auf einem Ähnlichkeitsmaß gematcht werden.
Die Disparität ist die Anzahl der Pixel, welche ein Pixel
in ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 verschoben werden muss, um das homologe Pixel
in ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 zu erreichen.
Der Suchbereich wird durch den minimalen und maximalen Disparitätswert
MinDisparityMinDisparityMinDisparityMinDisparityminDisparity und MaxDisparityMaxDisparityMaxDisparityMaxDisparitymaxDisparity festgelegt.
Das Ähnlichkeitsmaß kann festgelegt werden,
indem GenParamNameGenParamNameGenParamNameGenParamNamegenParamName auf 'similarity_measure'"similarity_measure""similarity_measure""similarity_measure""similarity_measure"
und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue auf den gewünschten Wert gesetzt wird.
In den beiden Fällen 'census_dense'"census_dense""census_dense""census_dense""census_dense" (default)
und 'census_sparse'"census_sparse""census_sparse""census_sparse""census_sparse" basiert das Ähnlichkeitsmaß
auf der Census-Transformation. Ein transformiertes Bild
enthält für jedes Pixel Information über die Topologie der Intensitäten
innerhalb eines Supportfensters.
'census_dense'"census_dense""census_dense""census_dense""census_dense" verwendet ein Fenster von 9 x 7 Pixeln.
'census_sparse'"census_sparse""census_sparse""census_sparse""census_sparse" verwendet ein Fenster von 15 x 15 Pixeln,
von welchen jedoch nur ein Teil ausgewertet wird.
Während 'census_dense'"census_dense""census_dense""census_dense""census_dense" besser für feine Strukturen geeignet ist,
liefert 'census_sparse'"census_sparse""census_sparse""census_sparse""census_sparse" robustere Ergebnisse
in schwach texturierten Bereichen.
Um aus dem Ähnlichkeitsmaß die Disparitäten zu berechnen,
werden die Zwischenergebnisse mit Hilfe einer Multi-Scanline-Methode
optimiert. Die Optimierung steigert die Robustheit
in schwach texturierten Bereichen ohne Disparitätssprünge zu glätten.
Die Optimierung wird durch die beiden Parameter
SurfaceSmoothingSurfaceSmoothingSurfaceSmoothingSurfaceSmoothingsurfaceSmoothing und EdgeSmoothingEdgeSmoothingEdgeSmoothingEdgeSmoothingedgeSmoothing gesteuert.
SurfaceSmoothingSurfaceSmoothingSurfaceSmoothingSurfaceSmoothingsurfaceSmoothing steuert die Glattheit innerhalb von Oberflächen.
Hohe Werte unterdrücken Disparitätsdifferenzen von einem Pixel.
EdgeSmoothingEdgeSmoothingEdgeSmoothingEdgeSmoothingedgeSmoothing steuert die Häufigkeit und die Form von Kanten.
Niedrige Werte lassen viele Kanten zu,
hohe Werte führen zu weniger und runderen Kanten.
Für beide Parameter liegt ein sinnvoller Wertebereich
üblicherweise zwischen 0 und 100. Sind beide Parameter
auf null gesetzt, wird keine Optimierung durchgeführt.
Die resultierende Disparität wird in dem einkanaligen Bild
DisparityDisparityDisparityDisparitydisparity zurückgegeben. Ein Qualitätsmaß
für jeden Disparitätswert wird in ScoreScoreScoreScorescore ausgegeben.
Es enthält das beste (niedrigste) Ergebnis
des optimierten Ähnlichkeitsmaßes eines Referenzpixels.
Schließlich gibt es zwei optionale Nachbearbeitungsschritte.
Wird GenParamNameGenParamNameGenParamNameGenParamNamegenParamName auf 'consistency_check'"consistency_check""consistency_check""consistency_check""consistency_check"
und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue auf 'true'"true""true""true""true" (default) gesetzt,
werden nur noch diejenigen Disparitätswerte zurückgegeben,
die übereinstimmend bei einer Suche eines Referenzmusters
von ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 in ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 als auch
von ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 in ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 gefunden werden.
Der Wert 'false'"false""false""false""false" schaltet dieses Verhalten aus.
Wird GenParamNameGenParamNameGenParamNameGenParamNamegenParamName auf 'sub_disparity'"sub_disparity""sub_disparity""sub_disparity""sub_disparity"
und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue auf 'true'"true""true""true""true" (default) gesetzt, werden
kontinuierliche Werte für die bisher ganzzahligen Disparitätswerte geschätzt.
Der Wert 'false'"false""false""false""false" schaltet dieses Verhalten aus.
Die Laufzeit des Operators verhält sich in etwa linear zur Bildbreite,
zur Bildhöhe und zum Disparitätsbereich. Folglich sollte der
Disparitätsbereich für große Bilder so klein wie möglich gewählt werden.
- Unterstützt OpenCL Compute Devices.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
- Automatisch parallelisiert auf interner Datenebene.
Rektifiziertes Bild von Kamera 1.
Rektifiziertes Bild von Kamera 2.
Güte der berechneten Disparität.
Minimale erwartete Disparität.
Defaultwert: -30
Typischer Wertebereich: -32768
≤
MinDisparity
MinDisparity
MinDisparity
MinDisparity
minDisparity
≤
32767
Maximale erwartete Disparität.
Defaultwert: 30
Typischer Wertebereich: -32768
≤
MaxDisparity
MaxDisparity
MaxDisparity
MaxDisparity
maxDisparity
≤
32767
Restriktion: MinDisparity <= MaxDisparity
Glättung von Oberflächen.
Defaultwert: 50
Wertevorschläge: 20, 50, 100
Restriktion: SurfaceSmoothing >= 0
Glättung von Kanten.
Defaultwert: 50
Wertevorschläge: 20, 50, 100
Restriktion: EdgeSmoothing >= 0
Parametername(n) für das Multi-Scanline-Verfahren.
Defaultwert: []
Werteliste: 'consistency_check'"consistency_check""consistency_check""consistency_check""consistency_check", 'similarity_measure'"similarity_measure""similarity_measure""similarity_measure""similarity_measure", 'sub_disparity'"sub_disparity""sub_disparity""sub_disparity""sub_disparity"
Parameterwert(e) für das Multi-Scanline-Verfahren.
Defaultwert: []
Wertevorschläge: 'census_dense'"census_dense""census_dense""census_dense""census_dense", 'census_sparse'"census_sparse""census_sparse""census_sparse""census_sparse", 'true'"true""true""true""true", 'false'"false""false""false""false"
read_image (BaseballL, 'stereo/epipolar/baseball_l')
read_image (BaseballR, 'stereo/epipolar/baseball_r')
binocular_disparity_ms (BaseballL, BaseballR, Disparity, Score, \
-40, -10, 50, 50, [], [])
Sind die Parameterwerte korrekt, dann liefert
binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMsBinocularDisparityMs den Wert 2 (H_MSG_TRUE). Das Verhalten bei
leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels
set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
map_imagemap_imageMapImageMapImageMapImage
thresholdthresholdThresholdThresholdThreshold,
disparity_to_distancedisparity_to_distanceDisparityToDistanceDisparityToDistanceDisparityToDistance,
disparity_image_to_xyzdisparity_image_to_xyzDisparityImageToXyzDisparityImageToXyzDisparityImageToXyz
binocular_disparitybinocular_disparityBinocularDisparityBinocularDisparityBinocularDisparity,
binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMgBinocularDisparityMg,
binocular_distancebinocular_distanceBinocularDistanceBinocularDistanceBinocularDistance,
binocular_distance_mgbinocular_distance_mgBinocularDistanceMgBinocularDistanceMgBinocularDistanceMg,
binocular_distance_msbinocular_distance_msBinocularDistanceMsBinocularDistanceMsBinocularDistanceMs
map_imagemap_imageMapImageMapImageMapImage,
gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMapGenBinocularRectificationMap,
binocular_calibrationbinocular_calibrationBinocularCalibrationBinocularCalibrationBinocularCalibration
3D Metrology