Name
binocular_distance_mgT_binocular_distance_mgBinocularDistanceMgbinocular_distance_mgBinocularDistanceMgBinocularDistanceMg — Berechnet das Distanzbild für ein rektifiziertes Bildpaar mit Hilfe von
Mehrgitter-Verfahren.
binocular_distance_mg(Image1, Image2 : Distance, Score : CamParamRect1, CamParamRect2, RelPoseRect, GrayConstancy, GradientConstancy, Smoothness, InitialGuess, CalculateScore, MGParamName, MGParamValue : )
Herror T_binocular_distance_mg(const Hobject Image1, const Hobject Image2, Hobject* Distance, Hobject* Score, const Htuple CamParamRect1, const Htuple CamParamRect2, const Htuple RelPoseRect, const Htuple GrayConstancy, const Htuple GradientConstancy, const Htuple Smoothness, const Htuple InitialGuess, const Htuple CalculateScore, const Htuple MGParamName, const Htuple MGParamValue)
Herror binocular_distance_mg(Hobject Image1, Hobject Image2, Hobject* Distance, Hobject* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HTuple& RelPoseRect, const HTuple& GrayConstancy, const HTuple& GradientConstancy, const HTuple& Smoothness, const HTuple& InitialGuess, const HTuple& CalculateScore, const HTuple& MGParamName, const HTuple& MGParamValue)
HImage HImage::BinocularDistanceMg(const HImage& Image2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HTuple& RelPoseRect, const HTuple& GrayConstancy, const HTuple& GradientConstancy, const HTuple& Smoothness, const HTuple& InitialGuess, const HTuple& CalculateScore, const HTuple& MGParamName, const HTuple& MGParamValue) const
HImageArray HImageArray::BinocularDistanceMg(const HImageArray& Image2, HImageArray* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HTuple& RelPoseRect, const HTuple& GrayConstancy, const HTuple& GradientConstancy, const HTuple& Smoothness, const HTuple& InitialGuess, const HTuple& CalculateScore, const HTuple& MGParamName, const HTuple& MGParamValue) const
void BinocularDistanceMg(const HObject& Image1, const HObject& Image2, HObject* Distance, HObject* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HTuple& RelPoseRect, const HTuple& GrayConstancy, const HTuple& GradientConstancy, const HTuple& Smoothness, const HTuple& InitialGuess, const HTuple& CalculateScore, const HTuple& MGParamName, const HTuple& MGParamValue)
HImage HImage::BinocularDistanceMg(const HImage& Image2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const HString& CalculateScore, const HTuple& MGParamName, const HTuple& MGParamValue) const
HImage HImage::BinocularDistanceMg(const HImage& Image2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const HString& CalculateScore, const HString& MGParamName, const HString& MGParamValue) const
HImage HImage::BinocularDistanceMg(const HImage& Image2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const char* CalculateScore, const char* MGParamName, const char* MGParamValue) const
HImage HPose::BinocularDistanceMg(const HImage& Image1, const HImage& Image2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const HString& CalculateScore, const HTuple& MGParamName, const HTuple& MGParamValue) const
HImage HPose::BinocularDistanceMg(const HImage& Image1, const HImage& Image2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const HString& CalculateScore, const HString& MGParamName, const HString& MGParamValue) const
HImage HPose::BinocularDistanceMg(const HImage& Image1, const HImage& Image2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const char* CalculateScore, const char* MGParamName, const char* MGParamValue) const
void HOperatorSetX.BinocularDistanceMg(
[in] IHUntypedObjectX* Image1, [in] IHUntypedObjectX* Image2, [out] IHUntypedObjectX** Distance, [out] IHUntypedObjectX** Score, [in] VARIANT CamParamRect1, [in] VARIANT CamParamRect2, [in] VARIANT RelPoseRect, [in] VARIANT GrayConstancy, [in] VARIANT GradientConstancy, [in] VARIANT Smoothness, [in] VARIANT InitialGuess, [in] VARIANT CalculateScore, [in] VARIANT MGParamName, [in] VARIANT MGParamValue)
IHImageX* HImageX.BinocularDistanceMg(
[in] IHImageX* Image2, [out] IHImageX** Score, [in] VARIANT CamParamRect1, [in] VARIANT CamParamRect2, [in] VARIANT RelPoseRect, [in] double GrayConstancy, [in] double GradientConstancy, [in] double Smoothness, [in] double InitialGuess, [in] BSTR CalculateScore, [in] VARIANT MGParamName, [in] VARIANT MGParamValue)
IHImageX* HPoseX.BinocularDistanceMg(
[in] IHImageX* Image1, [in] IHImageX* Image2, [out] IHImageX** Score, [in] VARIANT CamParamRect1, [in] VARIANT CamParamRect2, [in] VARIANT RelPoseRect, [in] double GrayConstancy, [in] double GradientConstancy, [in] double Smoothness, [in] double InitialGuess, [in] BSTR CalculateScore, [in] VARIANT MGParamName, [in] VARIANT MGParamValue)
static void HOperatorSet.BinocularDistanceMg(HObject image1, HObject image2, out HObject distance, out HObject score, HTuple camParamRect1, HTuple camParamRect2, HTuple relPoseRect, HTuple grayConstancy, HTuple gradientConstancy, HTuple smoothness, HTuple initialGuess, HTuple calculateScore, HTuple MGParamName, HTuple MGParamValue)
HImage HImage.BinocularDistanceMg(HImage image2, out HImage score, HTuple camParamRect1, HTuple camParamRect2, HPose relPoseRect, double grayConstancy, double gradientConstancy, double smoothness, double initialGuess, string calculateScore, HTuple MGParamName, HTuple MGParamValue)
HImage HImage.BinocularDistanceMg(HImage image2, out HImage score, HTuple camParamRect1, HTuple camParamRect2, HPose relPoseRect, double grayConstancy, double gradientConstancy, double smoothness, double initialGuess, string calculateScore, string MGParamName, string MGParamValue)
HImage HPose.BinocularDistanceMg(HImage image1, HImage image2, out HImage score, HTuple camParamRect1, HTuple camParamRect2, double grayConstancy, double gradientConstancy, double smoothness, double initialGuess, string calculateScore, HTuple MGParamName, HTuple MGParamValue)
HImage HPose.BinocularDistanceMg(HImage image1, HImage image2, out HImage score, HTuple camParamRect1, HTuple camParamRect2, double grayConstancy, double gradientConstancy, double smoothness, double initialGuess, string calculateScore, string MGParamName, string MGParamValue)
binocular_distance_mgbinocular_distance_mgBinocularDistanceMgbinocular_distance_mgBinocularDistanceMgBinocularDistanceMg berechnet das Distanzbild für ein
rektifiziertes Bildpaar mit Hilfe von Mehrgitter-Verfahren.
Der Operator berechnet zunächst die Disparitäten zwischen den zwei
rektifizierten Bildern Image1Image1Image1Image1Image1image1 und Image2Image2Image2Image2Image2image2 ähnlich
wie in binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMg. Die resultierenden Disparitätswerte
werden dann wie in disparity_to_distancedisparity_to_distanceDisparityToDistancedisparity_to_distanceDisparityToDistanceDisparityToDistance in Distanzwerte der
korrespondierenden 3D Weltpunkte zu dem rektifiziertem Stereo-Kamerasystem
transformiert. Die Distanzen werden in dem einkanaligem Bild DistanceDistanceDistanceDistanceDistancedistance
zurückgegeben, in dem jeder Grauwert den Abstand des jeweiligen 3D
Weltpunktes zu dem Stereo-Kamerasytem repräsentiert. Anders als in
binocular_distancebinocular_distanceBinocularDistancebinocular_distanceBinocularDistanceBinocularDistance verwendet dieser Operator Variationsmethoden
basierend auf Mehrgitter-Verfahren. Damit können auch Distanzwerte
für Bildbereiche bestimmt werden, die keine oder kaum Textur aufweisen.
Die Eingabebilder Image1Image1Image1Image1Image1image1 und Image2Image2Image2Image2Image2image2 müssen ein Paar
rektifizierte Stereobilder darstellen, d.h. korrespondierende Punkte
müssen dieselbe Zeilen-Koordinate haben. Falls diese Annahme nicht
zutrifft, können die Bilder mit den Operatoren calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras,
gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMap und map_imagemap_imageMapImagemap_imageMapImageMapImage rektifiziert
werden.
Für die Transformation der Disparität in den Abstand
werden die internen Parameter für die rektifizierte Kamera 1 in
CamParamRect1CamParamRect1CamParamRect1CamParamRect1CamParamRect1camParamRect1 und für die rektifizierte Kamera 2 in
CamParamRect2CamParamRect2CamParamRect2CamParamRect2CamParamRect2camParamRect2 sowie die relativen Lage der Kameras in
RelPoseRectRelPoseRectRelPoseRectRelPoseRectRelPoseRectrelPoseRect 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_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras und
gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMap.
Die Beschreibung des Verfahrens sowie der weiteren Parameter findet
sich in der Dokumentation von binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMg.
Bei der Verwendung von telezentrischen Kameras bezieht sich die
Distanz DistanceDistanceDistanceDistanceDistancedistance 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_mapGenBinocularRectificationMapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMap) definiert ist.
- 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.
Interne Kameraparameter der rektifizierten
Kamera 1.
Parameteranzahl: CamParamRect1 == 8 || CamParamRect1 == 12
Interne Kameraparameter der rektifizierten
Kamera 2.
Parameteranzahl: CamParamRect2 == 8 || CamParamRect2 == 12
Punkttransformation von entzerrter Kamera 2 zu
entzerrter Kamera 1.
Parameteranzahl: 7
Gewicht der Grauwerterhaltung im Datenterm.
Defaultwert: 1.0
Wertevorschläge: 0.0, 1.0, 2.0, 10.0
Restriktion: GrayConstancy >= 0.0
Gewicht der Gradientenerhaltung im Datenterm.
Defaultwert: 30.0
Wertevorschläge: 0.0, 1.0, 5.0, 10.0, 30.0, 50.0, 70.0
Restriktion: GradientConstancy >= 0.0
Gewicht des Glattheitsterms bezüglich des
Datenterms.
Defaultwert: 5.0
Wertevorschläge: 1.0, 3.0, 5.0, 10.0
Restriktion: Smoothness > 0.0
Startwert für die Disparität.
Defaultwert: 0.0
Wertevorschläge: -30.0, -20.0, -10.0, 0.0, 10.0, 20.0, 30.0
Soll die Qualitätsschätzung
in ScoreScoreScoreScoreScorescore zurückgegeben werden?.
Defaultwert:
'false'
"false"
"false"
"false"
"false"
"false"
Wertevorschläge: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"
Parametername(n) für das Mehrgitterverfahren.
Defaultwert:
'default_parameters'
"default_parameters"
"default_parameters"
"default_parameters"
"default_parameters"
"default_parameters"
Werteliste: 'default_parameters'"default_parameters""default_parameters""default_parameters""default_parameters""default_parameters", 'initial_level'"initial_level""initial_level""initial_level""initial_level""initial_level", 'iterations'"iterations""iterations""iterations""iterations""iterations", 'mg_cycle_type'"mg_cycle_type""mg_cycle_type""mg_cycle_type""mg_cycle_type""mg_cycle_type", 'mg_post_relax'"mg_post_relax""mg_post_relax""mg_post_relax""mg_post_relax""mg_post_relax", 'mg_pre_relax'"mg_pre_relax""mg_pre_relax""mg_pre_relax""mg_pre_relax""mg_pre_relax", 'mg_solver'"mg_solver""mg_solver""mg_solver""mg_solver""mg_solver", 'pyramid_factor'"pyramid_factor""pyramid_factor""pyramid_factor""pyramid_factor""pyramid_factor"
Parameterwert(e) für das Mehrgitterverfahren.
Defaultwert:
'fast_accurate'
"fast_accurate"
"fast_accurate"
"fast_accurate"
"fast_accurate"
"fast_accurate"
Wertevorschläge: 'very_accurate'"very_accurate""very_accurate""very_accurate""very_accurate""very_accurate", 'accurate'"accurate""accurate""accurate""accurate""accurate", 'fast_accurate'"fast_accurate""fast_accurate""fast_accurate""fast_accurate""fast_accurate", 'fast'"fast""fast""fast""fast""fast", 'v'"v""v""v""v""v", 'w'"w""w""w""w""w", 'none'"none""none""none""none""none", 'gauss_seidel'"gauss_seidel""gauss_seidel""gauss_seidel""gauss_seidel""gauss_seidel", 'multigrid'"multigrid""multigrid""multigrid""multigrid""multigrid", 'full_multigrid'"full_multigrid""full_multigrid""full_multigrid""full_multigrid""full_multigrid", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, -1, -2, -3, -4, -5
Sind die Parameterwerte korrekt, dann liefert
binocular_distance_mgbinocular_distance_mgBinocularDistanceMgbinocular_distance_mgBinocularDistanceMgBinocularDistanceMg 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>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
map_imagemap_imageMapImagemap_imageMapImageMapImage
thresholdthresholdThresholdthresholdThresholdThreshold
binocular_disparitybinocular_disparityBinocularDisparitybinocular_disparityBinocularDisparityBinocularDisparity,
binocular_distancebinocular_distanceBinocularDistancebinocular_distanceBinocularDistanceBinocularDistance,
binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMg
map_imagemap_imageMapImagemap_imageMapImageMapImage,
gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMap,
binocular_calibrationbinocular_calibrationBinocularCalibrationbinocular_calibrationBinocularCalibrationBinocularCalibration,
disparity_to_distancedisparity_to_distanceDisparityToDistancedisparity_to_distanceDisparityToDistanceDisparityToDistance,
distance_to_disparitydistance_to_disparityDistanceToDisparitydistance_to_disparityDistanceToDisparityDistanceToDisparity,
disparity_image_to_xyzdisparity_image_to_xyzDisparityImageToXyzdisparity_image_to_xyzDisparityImageToXyzDisparityImageToXyz
3D Metrology