binocular_distance_msT_binocular_distance_msBinocularDistanceMsBinocularDistanceMs (Operator)
Name
binocular_distance_msT_binocular_distance_msBinocularDistanceMsBinocularDistanceMs
— Berechnet das Distanzbild für ein rektifiziertes Stereobildpaar mit
Hilfe von Multi-Scanline-Optimierung.
Signatur
binocular_distance_ms(ImageRect1, ImageRect2 : Distance, Score : CamParamRect1, CamParamRect2, RelPoseRect, MinDisparity, MaxDisparity, SurfaceSmoothing, EdgeSmoothing, GenParamName, GenParamValue : )
Herror T_binocular_distance_ms(const Hobject ImageRect1, const Hobject ImageRect2, Hobject* Distance, Hobject* Score, const Htuple CamParamRect1, const Htuple CamParamRect2, const Htuple RelPoseRect, const Htuple MinDisparity, const Htuple MaxDisparity, const Htuple SurfaceSmoothing, const Htuple EdgeSmoothing, const Htuple GenParamName, const Htuple GenParamValue)
void BinocularDistanceMs(const HObject& ImageRect1, const HObject& ImageRect2, HObject* Distance, HObject* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HTuple& RelPoseRect, const HTuple& MinDisparity, const HTuple& MaxDisparity, const HTuple& SurfaceSmoothing, const HTuple& EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue)
HImage HImage::BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const
HImage HImage::BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HString& GenParamName, const HString& GenParamValue) const
HImage HImage::BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue) const
HImage HImage::BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const wchar_t* GenParamName, const wchar_t* GenParamValue) const
(Nur Windows)
HImage HCamPar::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const
HImage HCamPar::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HString& GenParamName, const HString& GenParamValue) const
HImage HCamPar::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue) const
HImage HCamPar::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const wchar_t* GenParamName, const wchar_t* GenParamValue) const
(Nur Windows)
HImage HPose::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const
HImage HPose::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HString& GenParamName, const HString& GenParamValue) const
HImage HPose::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue) const
HImage HPose::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const wchar_t* GenParamName, const wchar_t* GenParamValue) const
(Nur Windows)
static void HOperatorSet.BinocularDistanceMs(HObject imageRect1, HObject imageRect2, out HObject distance, out HObject score, HTuple camParamRect1, HTuple camParamRect2, HTuple relPoseRect, HTuple minDisparity, HTuple maxDisparity, HTuple surfaceSmoothing, HTuple edgeSmoothing, HTuple genParamName, HTuple genParamValue)
HImage HImage.BinocularDistanceMs(HImage imageRect2, out HImage score, HCamPar camParamRect1, HCamPar camParamRect2, HPose relPoseRect, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, HTuple genParamName, HTuple genParamValue)
HImage HImage.BinocularDistanceMs(HImage imageRect2, out HImage score, HCamPar camParamRect1, HCamPar camParamRect2, HPose relPoseRect, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, string genParamName, string genParamValue)
HImage HCamPar.BinocularDistanceMs(HImage imageRect1, HImage imageRect2, out HImage score, HCamPar camParamRect2, HPose relPoseRect, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, HTuple genParamName, HTuple genParamValue)
HImage HCamPar.BinocularDistanceMs(HImage imageRect1, HImage imageRect2, out HImage score, HCamPar camParamRect2, HPose relPoseRect, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, string genParamName, string genParamValue)
HImage HPose.BinocularDistanceMs(HImage imageRect1, HImage imageRect2, out HImage score, HCamPar camParamRect1, HCamPar camParamRect2, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, HTuple genParamName, HTuple genParamValue)
HImage HPose.BinocularDistanceMs(HImage imageRect1, HImage imageRect2, out HImage score, HCamPar camParamRect1, HCamPar camParamRect2, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, string genParamName, string genParamValue)
Beschreibung
binocular_distance_msbinocular_distance_msBinocularDistanceMsBinocularDistanceMsBinocularDistanceMs
berechnet das Distanzbild für ein
rektifiziertes Stereobildpaar mit Hilfe von
Multi-Scanline-Optimierung. Der Operator berechnet zunächst die
Disparitäten zwischen den zwei rektifizierten Bildern
ImageRect1ImageRect1ImageRect1ImageRect1imageRect1
und ImageRect2ImageRect2ImageRect2ImageRect2imageRect2
, ähnlich wie
binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMsBinocularDisparityMs
. Die resultierenden Disparitätswerte
werden dann wie in disparity_to_distancedisparity_to_distanceDisparityToDistanceDisparityToDistanceDisparityToDistance
in Distanzwerte der
korrespondierenden 3D Weltpunkte zu dem rektifizierten
Stereo-Kamerasystem transformiert. Die Distanzen werden in dem
einkanaligen Bild DistanceDistanceDistanceDistancedistance
zurückgegeben, in dem jeder
Grauwert den Abstand des jeweiligen 3D Weltpunktes zu dem
Stereo-Kamerasystem repräsentiert.
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.
Für die Transformation der Disparität in den Abstand werden die
internen Parameter für die rektifizierte Kamera 1 in
CamParamRect1CamParamRect1CamParamRect1CamParamRect1camParamRect1
und für die rektifizierte Kamera 2 in
CamParamRect2CamParamRect2CamParamRect2CamParamRect2camParamRect2
sowie die relative Lage der Kameras in
RelPoseRectRelPoseRectRelPoseRectRelPoseRectrelPoseRect
benötigt. Die relative Lage definiert eine
Punkttransformation von dem entzerrten Kamerasystem 2 in das
entzerrte Kamerasystem 1. Die Werte für diese Parameter erhält man
beispielsweise von den Operatoren calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras
und
gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMapGenBinocularRectificationMap
.
Die Beschreibung der weiteren Parameter findet sich in der
Dokumentation von binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMsBinocularDisparityMs
.
Achtung
Bei der Verwendung von telezentrischen Kameras bezieht sich die
Distanz DistanceDistanceDistanceDistancedistance
nicht auf die Entfernung eines Punktes zum
Projektionszentrum einer Kamera. Die Entfernung wird zu der Ebene
gemessen, die durch die y-Achse beider Kameras und der Basis (siehe
gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMapGenBinocularRectificationMap
) definiert ist.
Für Stereosysteme gemischten Typs (d.h., falls das ursprüngliche
Stereosystem aus einer perspektivischen und einer telezentrischen
Kamera bestand; siehe gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMapGenBinocularRectificationMap
), ist
die rektifizierende Ebene der zwei Kameras in einer Lage relativ zum
Objekt, die zu sehr unintuitiven Distanzen führen würde. Daher
unterstützt binocular_distance_msbinocular_distance_msBinocularDistanceMsBinocularDistanceMsBinocularDistanceMs
Stereosysteme gemischten
Typs nicht. Für Stereosysteme gemischten Typs sollte stattdessen
reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoReconstructSurfaceStereo
verwendet werden. Dort kann das
Referenzkoordinatensystem beliebig gewählt werden. Alternativ
können eventuell binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMsBinocularDisparityMs
und
disparity_image_to_xyzdisparity_image_to_xyzDisparityImageToXyzDisparityImageToXyzDisparityImageToXyz
verwendet werden.
Auch Stereosysteme, die sowohl Kameras mit hyperzentrischen Objektiven
als auch Kameras ohne hyperzentrische Objektive enthalten, werden nicht
unterstützt.
Ausführungsinformationen
- 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.
Parameter
ImageRect1ImageRect1ImageRect1ImageRect1imageRect1
(input_object) singlechannelimage →
objectHImageHImageHobject (byte*) *erlaubt für Compute Devices
Rektifiziertes Bild von Kamera 1.
ImageRect2ImageRect2ImageRect2ImageRect2imageRect2
(input_object) singlechannelimage →
objectHImageHImageHobject (byte*) *erlaubt für Compute Devices
Rektifiziertes Bild von Kamera 2.
DistanceDistanceDistanceDistancedistance
(output_object) singlechannelimage →
objectHImageHImageHobject * (real)
Abstandsbild.
ScoreScoreScoreScorescore
(output_object) singlechannelimage →
objectHImageHImageHobject * (real)
Güte der berechneten Disparität.
CamParamRect1CamParamRect1CamParamRect1CamParamRect1camParamRect1
(input_control) campar →
HCamPar, HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Interne Kameraparameter der rektifizierten Kamera 1.
CamParamRect2CamParamRect2CamParamRect2CamParamRect2camParamRect2
(input_control) campar →
HCamPar, HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Interne Kameraparameter der rektifizierten Kamera 2.
RelPoseRectRelPoseRectRelPoseRectRelPoseRectrelPoseRect
(input_control) pose →
HPose, HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Punkttransformation von entzerrter Kamera 2 zu
entzerrter Kamera 1.
Parameteranzahl: 7
MinDisparityMinDisparityMinDisparityMinDisparityminDisparity
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Minimale erwartete Disparität.
Defaultwert: -30
Typischer Wertebereich: -32768
≤
MinDisparity
MinDisparity
MinDisparity
MinDisparity
minDisparity
≤
32767
MaxDisparityMaxDisparityMaxDisparityMaxDisparitymaxDisparity
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Maximale erwartete Disparität.
Defaultwert: 30
Typischer Wertebereich: -32768
≤
MaxDisparity
MaxDisparity
MaxDisparity
MaxDisparity
maxDisparity
≤
32767
Restriktion: MinDisparity <= MaxDisparity
SurfaceSmoothingSurfaceSmoothingSurfaceSmoothingSurfaceSmoothingsurfaceSmoothing
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Glättung von Oberflächen.
Defaultwert: 50
Wertevorschläge: 20, 50, 100
Restriktion: SurfaceSmoothing >= 0
EdgeSmoothingEdgeSmoothingEdgeSmoothingEdgeSmoothingedgeSmoothing
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Glättung von Kanten.
Defaultwert: 50
Wertevorschläge: 20, 50, 100
Restriktion: EdgeSmoothing >= 0
GenParamNameGenParamNameGenParamNameGenParamNamegenParamName
(input_control) attribute.name(-array) →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Parametername(n) für das Multi-Scanline-Verfahren.
Defaultwert: []
Werteliste: 'consistency_check'"consistency_check""consistency_check""consistency_check""consistency_check", 'disparity_offset'"disparity_offset""disparity_offset""disparity_offset""disparity_offset", 'num_levels'"num_levels""num_levels""num_levels""num_levels", 'similarity_measure'"similarity_measure""similarity_measure""similarity_measure""similarity_measure", 'sub_disparity'"sub_disparity""sub_disparity""sub_disparity""sub_disparity"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue
(input_control) attribute.value(-array) →
HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
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"
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
binocular_distance_msbinocular_distance_msBinocularDistanceMsBinocularDistanceMsBinocularDistanceMs
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.
Vorgänger
map_imagemap_imageMapImageMapImageMapImage
Nachfolger
thresholdthresholdThresholdThresholdThreshold
Alternativen
binocular_distancebinocular_distanceBinocularDistanceBinocularDistanceBinocularDistance
,
binocular_distance_mgbinocular_distance_mgBinocularDistanceMgBinocularDistanceMgBinocularDistanceMg
,
binocular_disparitybinocular_disparityBinocularDisparityBinocularDisparityBinocularDisparity
,
binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMgBinocularDisparityMg
,
binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMsBinocularDisparityMs
Siehe auch
map_imagemap_imageMapImageMapImageMapImage
,
gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMapGenBinocularRectificationMap
,
binocular_calibrationbinocular_calibrationBinocularCalibrationBinocularCalibrationBinocularCalibration
,
disparity_to_distancedisparity_to_distanceDisparityToDistanceDisparityToDistanceDisparityToDistance
,
distance_to_disparitydistance_to_disparityDistanceToDisparityDistanceToDisparityDistanceToDisparity
,
disparity_image_to_xyzdisparity_image_to_xyzDisparityImageToXyzDisparityImageToXyzDisparityImageToXyz
Modul
3D Metrology