binocular_distance T_binocular_distance BinocularDistance BinocularDistance binocular_distance (Operator)
Name
binocular_distance T_binocular_distance BinocularDistance BinocularDistance binocular_distance
— Berechnet das Distanzbild für ein rektifiziertes Bildpaar mit Hilfe
von Korrelationsmethoden.
Signatur
binocular_distance (ImageRect1 , ImageRect2 : Distance , Score : CamParamRect1 , CamParamRect2 , RelPoseRect , Method , MaskWidth , MaskHeight , TextureThresh , MinDisparity , MaxDisparity , NumLevels , ScoreThresh , Filter , SubDistance : )
Herror T_binocular_distance (const Hobject ImageRect1 , const Hobject ImageRect2 , Hobject* Distance , Hobject* Score , const Htuple CamParamRect1 , const Htuple CamParamRect2 , const Htuple RelPoseRect , const Htuple Method , const Htuple MaskWidth , const Htuple MaskHeight , const Htuple TextureThresh , const Htuple MinDisparity , const Htuple MaxDisparity , const Htuple NumLevels , const Htuple ScoreThresh , const Htuple Filter , const Htuple SubDistance )
void BinocularDistance (const HObject& ImageRect1 , const HObject& ImageRect2 , HObject* Distance , HObject* Score , const HTuple& CamParamRect1 , const HTuple& CamParamRect2 , const HTuple& RelPoseRect , const HTuple& Method , const HTuple& MaskWidth , const HTuple& MaskHeight , const HTuple& TextureThresh , const HTuple& MinDisparity , const HTuple& MaxDisparity , const HTuple& NumLevels , const HTuple& ScoreThresh , const HTuple& Filter , const HTuple& SubDistance )
HImage HImage ::BinocularDistance (const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , const HTuple& TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , const HTuple& ScoreThresh , const HTuple& Filter , const HTuple& SubDistance ) const
HImage HImage ::BinocularDistance (const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const HString& Filter , const HString& SubDistance ) const
HImage HImage ::BinocularDistance (const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const char* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const char* Filter , const char* SubDistance ) const
HImage HImage ::BinocularDistance (const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const wchar_t* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const wchar_t* Filter , const wchar_t* SubDistance ) const
(Nur Windows)
HImage HCamPar ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , const HTuple& TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , const HTuple& ScoreThresh , const HTuple& Filter , const HTuple& SubDistance ) const
HImage HCamPar ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const HString& Filter , const HString& SubDistance ) const
HImage HCamPar ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const char* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const char* Filter , const char* SubDistance ) const
HImage HCamPar ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const wchar_t* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const wchar_t* Filter , const wchar_t* SubDistance ) const
(Nur Windows)
HImage HPose ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , const HTuple& TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , const HTuple& ScoreThresh , const HTuple& Filter , const HTuple& SubDistance ) const
HImage HPose ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const HString& Filter , const HString& SubDistance ) const
HImage HPose ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const char* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const char* Filter , const char* SubDistance ) const
HImage HPose ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const wchar_t* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const wchar_t* Filter , const wchar_t* SubDistance ) const
(Nur Windows)
static void HOperatorSet .BinocularDistance (HObject imageRect1 , HObject imageRect2 , out HObject distance , out HObject score , HTuple camParamRect1 , HTuple camParamRect2 , HTuple relPoseRect , HTuple method , HTuple maskWidth , HTuple maskHeight , HTuple textureThresh , HTuple minDisparity , HTuple maxDisparity , HTuple numLevels , HTuple scoreThresh , HTuple filter , HTuple subDistance )
HImage HImage .BinocularDistance (HImage imageRect2 , out HImage score , HCamPar camParamRect1 , HCamPar camParamRect2 , HPose relPoseRect , string method , int maskWidth , int maskHeight , HTuple textureThresh , int minDisparity , int maxDisparity , int numLevels , HTuple scoreThresh , HTuple filter , HTuple subDistance )
HImage HImage .BinocularDistance (HImage imageRect2 , out HImage score , HCamPar camParamRect1 , HCamPar camParamRect2 , HPose relPoseRect , string method , int maskWidth , int maskHeight , double textureThresh , int minDisparity , int maxDisparity , int numLevels , double scoreThresh , string filter , string subDistance )
HImage HCamPar .BinocularDistance (HImage imageRect1 , HImage imageRect2 , out HImage score , HCamPar camParamRect2 , HPose relPoseRect , string method , int maskWidth , int maskHeight , HTuple textureThresh , int minDisparity , int maxDisparity , int numLevels , HTuple scoreThresh , HTuple filter , HTuple subDistance )
HImage HCamPar .BinocularDistance (HImage imageRect1 , HImage imageRect2 , out HImage score , HCamPar camParamRect2 , HPose relPoseRect , string method , int maskWidth , int maskHeight , double textureThresh , int minDisparity , int maxDisparity , int numLevels , double scoreThresh , string filter , string subDistance )
HImage HPose .BinocularDistance (HImage imageRect1 , HImage imageRect2 , out HImage score , HCamPar camParamRect1 , HCamPar camParamRect2 , string method , int maskWidth , int maskHeight , HTuple textureThresh , int minDisparity , int maxDisparity , int numLevels , HTuple scoreThresh , HTuple filter , HTuple subDistance )
HImage HPose .BinocularDistance (HImage imageRect1 , HImage imageRect2 , out HImage score , HCamPar camParamRect1 , HCamPar camParamRect2 , string method , int maskWidth , int maskHeight , double textureThresh , int minDisparity , int maxDisparity , int numLevels , double scoreThresh , string filter , string subDistance )
def binocular_distance (image_rect_1 : HObject, image_rect_2 : HObject, cam_param_rect_1 : Sequence[Union[int, float, str]], cam_param_rect_2 : Sequence[Union[int, float, str]], rel_pose_rect : Sequence[Union[int, float]], method : str, mask_width : int, mask_height : int, texture_thresh : Union[float, int], min_disparity : int, max_disparity : int, num_levels : int, score_thresh : Union[float, int], filter : MaybeSequence[str], sub_distance : MaybeSequence[str]) -> Tuple[HObject, HObject]
Beschreibung
binocular_distance binocular_distance BinocularDistance BinocularDistance BinocularDistance binocular_distance
berechnet das Distanzbild für ein
rektifiziertes Bildpaar mit Hilfe von Korrelationsmethoden. Der
Operator berechnet zunächst die Disparitäten zwischen den zwei
rektifizierten Bildern ImageRect1 ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
und ImageRect2 ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
ähnlich wie in binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity BinocularDisparity binocular_disparity
. Die resultierenden
Disparitätswerte werden dann wie in disparity_to_distance disparity_to_distance DisparityToDistance DisparityToDistance DisparityToDistance disparity_to_distance
in
Distanzwerte der korrespondierenden 3D Weltpunkte zu dem
rektifizierten Stereo-Kamerasystem transformiert. Die Distanzen
werden in dem einkanaligen Bild Distance Distance Distance Distance distance distance
zurückgegeben, in
dem jeder Grauwert den Abstand des jeweiligen 3D Weltpunktes zu dem
Stereo-Kamerasystem repräsentiert.
Der Algorithmus benötigt ein Referenzbild ImageRect1 ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
und
ein Suchbild ImageRect2 ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
, welche entzerrt sein müssen,
d.h. korrespondierende Epipolarlinien liegen parallel und haben
identische Bildzeilenkoordinaten (
). Falls
diese Annahme nicht zutrifft, können die Bilder durch die Operatoren
calibrate_cameras calibrate_cameras CalibrateCameras CalibrateCameras CalibrateCameras calibrate_cameras
, gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
und map_image map_image MapImage MapImage MapImage map_image
entzerrt werden. Ausgehend von einem Pixel im
Referenzbild ImageRect1 ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
kann dann das zugehörige Pixel in
ImageRect2 ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
durch die Suche entlang der korrespondierenden
Zeile in ImageRect2 ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
gefunden werden. Eine Übereinstimmung
wird gefunden, indem jeweils eine lokale Nachbarschaft um das
entsprechende Pixel innerhalb eines Fensters der Größe
MaskWidth MaskWidth MaskWidth MaskWidth maskWidth mask_width
und MaskHeight MaskHeight MaskHeight MaskHeight maskHeight mask_height
in beiden Bildern
miteinander verglichen wird. Für jedes definierte Referenzpixel wird
die Pixelkorrespondenz in einen Distanzwert des 3D Punktes
transformiert, der durch den Schnittpunkt der Sichtstrahlen durch
beide korrespondierenden Pixel definiert ist.
Für diese Transformation werden die entzerrten internen Parameter
für die Kamera 1 in CamParamRect1 CamParamRect1 CamParamRect1 CamParamRect1 camParamRect1 cam_param_rect_1
und für die Kamera 2 in
CamParamRect2 CamParamRect2 CamParamRect2 CamParamRect2 camParamRect2 cam_param_rect_2
als auch die relativen externen
Kameraparameter RelPoseRect RelPoseRect RelPoseRect RelPoseRect relPoseRect rel_pose_rect
benötigt.
Letzteres ist eine Pose der Form
, welche die relative
Lage der beiden Kamerasysteme zueinander beschreibt. Genauer gesagt
definiert sie eine Punkttransformation von dem entzerrten
Kamerakoordinatensystem 2 (ccsR2 ) in das entzerrte
Kamerakoordinatensystem 1 (ccsR1 ).
Siehe auch Transformationen / Posen und
„Solution Guide III-C - 3D Vision“
.
Die Werte für diese Parameter erhält man beispielsweise von den Operatoren
calibrate_cameras calibrate_cameras CalibrateCameras CalibrateCameras CalibrateCameras calibrate_cameras
und gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
.
Ein Qualitätsmaß für jeden Distanzwert wird in Score Score Score Score score score
zurückgegeben,
welches jeweils das beste Ergebnis der Korrelationsfunktion
für einen Referenzpixel enthält. Für die Korrelation werden die Grauwerte
der originalen, nicht vorverarbeiteten Eingabebilder genutzt.
Die verwendete Korrelationsfunktion wird durch den Parameter
Method Method Method Method method method
bestimmt, welcher drei Arten unterscheidet:
'sad' "sad" "sad" "sad" "sad" "sad" : Summe der absoluten Differenzen (Summed Absolute Differences)
mit
.
'ssd' "ssd" "ssd" "ssd" "ssd" "ssd" : Summe der quadrierten Differenzen (Summed Squared Differences)
mit
.
'ncc' "ncc" "ncc" "ncc" "ncc" "ncc" : Normalisierte Kreuzkorrelation (Normalized Cross Correlation)
mit
.
wobei
,
,
,
:
Zeilen- und Spaltenkoordinaten der
korrespondierenden Pixel der beiden Eingabebilder,
,
:: Grauwerte der nicht vorverarbeiteten Eingabebilder,
: Größe des Korrelationsfensters,
: mittlerer Grauwert innerhalb eines
Korrelationsfensters der Breite
und Höhe
.
Die Methoden 'sad' "sad" "sad" "sad" "sad" "sad" und 'ssd' "ssd" "ssd" "ssd" "ssd" "ssd" vergleichen direkt
die Grauwerte der Pixel innerhalb des Grauwertfensters, wohingegen
'ncc' "ncc" "ncc" "ncc" "ncc" "ncc" den mittleren Grauwert und seine Varianz innerhalb
des Grauwertfensters ausgleicht. Wenn zwei Bilder in ihrer
Helligkeit und ihrem Kontrast unterschiedlich sind, ist daher
'ncc' "ncc" "ncc" "ncc" "ncc" "ncc" vorzuziehen. Ansonsten sind 'sad' "sad" "sad" "sad" "sad" "sad" und
'ssd' "ssd" "ssd" "ssd" "ssd" "ssd" vorzuziehen, da sie aufgrund einfacherer interner
Berechnungen schneller sind. Für weitere Details siehe
binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity BinocularDisparity binocular_disparity
.
Es muss darauf geachtet werden, dass die Güte der Korrelation für
steigende
in den Methoden 'sad' "sad" "sad" "sad" "sad" "sad" und
'ssd' "ssd" "ssd" "ssd" "ssd" "ssd" fällt (die beste Güte ist 0), während sie in der
Methode 'ncc' "ncc" "ncc" "ncc" "ncc" "ncc" steigt (die beste Güte ist 1.0).
Die Größe des Korrelationsfensters, welche durch
und
in obigen Gleichungen referenziert wird, muss
ungeradzahlig sein und kann durch die Parameter MaskWidth MaskWidth MaskWidth MaskWidth maskWidth mask_width
und MaskHeight MaskHeight MaskHeight MaskHeight maskHeight mask_height
festgelegt werden. Der Suchraum wird durch
den minimalen und maximalen Disparitätswert MinDisparity MinDisparity MinDisparity MinDisparity minDisparity min_disparity
und MaxDisparity MaxDisparity MaxDisparity MaxDisparity maxDisparity max_disparity
festgelegt. Da Grauwerte nicht außerhalb
des Bildrandes definiert sind wird die Bildregion des
Distance Distance Distance Distance distance distance
und Score Score Score Score score score
Bildes am unteren und oberen
Bildrand um (MaskHeight MaskHeight MaskHeight MaskHeight maskHeight mask_height
-1)/2 sowie am linken und rechten
Rand um (MaskWidth MaskWidth MaskWidth MaskWidth maskWidth mask_width
-1)/2 beschnitten. Aus dem gleichen Grund
wird der maximale Suchraum am linken und rechten Bildrand begrenzt.
Da die Korrelationsverfahren in schwach texturierten Bildregionen im
hohen Maße ungenau werden, kann die kleinste, innerhalb eines
Korrelationsfensters erlaubte Grauwertstreuung mit Hilfe des
Parameters TextureThresh TextureThresh TextureThresh TextureThresh textureThresh texture_thresh
definiert werden. Dieser
Schwellenwert wird auf beiden Eingabebildern ImageRect1 ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
und
ImageRect2 ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
angewendet. Zusätzlich garantiert
ScoreThresh ScoreThresh ScoreThresh ScoreThresh scoreThresh score_thresh
eine Mindestgüte der verwendeten
Korrelationsfunktion und legt für die Methoden 'sad' "sad" "sad" "sad" "sad" "sad" und
'ssd' "ssd" "ssd" "ssd" "ssd" "ssd" den größten, bzw. für 'ncc' "ncc" "ncc" "ncc" "ncc" "ncc" den kleinsten
zulässigen Korrelationswert fest. Wird ferner Filter Filter Filter Filter filter filter
auf
'left_right_check' "left_right_check" "left_right_check" "left_right_check" "left_right_check" "left_right_check" gesetzt, werden nur noch diejenigen
Disparitätswerte zurückgegeben, die übereinstimmend bei einer Suche
eines Referenzmusters von ImageRect1 ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
in ImageRect2 ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
als auch von ImageRect2 ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
in ImageRect1 ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
gefunden
werden. Der Wert 'none' "none" "none" "none" "none" "none" hingegen schaltet dieses Verhalten
aus.
Die Anzahl der Pyramidenstufen, welche verwendet werden um das
Zeitverhalten von binocular_distance binocular_distance BinocularDistance BinocularDistance BinocularDistance binocular_distance
zu verbessern, wird
durch den Parameter NumLevels NumLevels NumLevels NumLevels numLevels num_levels
bestimmt. Einem grob-zu-fein
Schema folgend werden die Disparitätsbilder der höheren Stufen
berechnet und in rechteckige Bildteile von ähnlicher Disparität
unterteilt um den Suchbereich auf der nächst niedrigeren Stufe für
diesen Bildausschnitt einzuschränken. TextureThresh TextureThresh TextureThresh TextureThresh textureThresh texture_thresh
und
ScoreThresh ScoreThresh ScoreThresh ScoreThresh scoreThresh score_thresh
werden auf jeder Stufe angewendet, so dass die
mit Distance Distance Distance Distance distance distance
und Score Score Score Score score score
zurückgegebene Bildregion
als die Schnittmenge der Bildregionen auf jeder einzelnen Stufe
definiert ist. Im Allgemeinen lohnt sich das Verwenden von
Pyramidenstrukturen um so mehr, je mehr das Distanzbild in homogene
Bereiche unterteilt werden kann und je größer der Disparitätsbereich
definiert werden muss. Auf der anderen Seite können zu hohe
Pyramidenstufen durch ihre grobe Auflösung wichtige
Texturinformationen verlieren, so dass falsche Distanzwerte
zurückgegeben werden können.
Der Wert 'interpolation' "interpolation" "interpolation" "interpolation" "interpolation" "interpolation" für den Parameter
SubDistance SubDistance SubDistance SubDistance subDistance sub_distance
schließlich erhöht die Genauigkeit und
Unterteilung der Distanzwerte. Das Verhalten wird ausgeschaltet
indem der Parameter auf 'none' "none" "none" "none" "none" "none" gesetzt wird.
Achtung
Bei der Verwendung von telezentrischen Kameras bezieht sich die
Distanz Distance Distance Distance Distance distance distance
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_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
) 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_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
), 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 binocular_distance BinocularDistance BinocularDistance BinocularDistance binocular_distance
Stereosysteme gemischten Typs
nicht. Für Stereosysteme gemischten Typs sollte stattdessen
reconstruct_surface_stereo reconstruct_surface_stereo ReconstructSurfaceStereo ReconstructSurfaceStereo ReconstructSurfaceStereo reconstruct_surface_stereo
verwendet werden. Dort kann das
Referenzkoordinatensystem beliebig gewählt werden. Alternativ
können eventuell binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity BinocularDisparity binocular_disparity
und
disparity_image_to_xyz disparity_image_to_xyz DisparityImageToXyz DisparityImageToXyz DisparityImageToXyz disparity_image_to_xyz
verwendet werden.
Auch Stereosysteme, die sowohl Kameras mit hyperzentrischen Objektiven
als auch Kameras ohne hyperzentrische Objektive enthalten, werden nicht
unterstützt.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf interner Datenebene.
Parameter
ImageRect1 ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
(input_object) singlechannelimage →
object HImage HObject HImage Hobject (byte)
Rektifiziertes Bild von Kamera 1.
ImageRect2 ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
(input_object) singlechannelimage →
object HImage HObject HImage Hobject (byte)
Rektifiziertes Bild von Kamera 2.
Distance Distance Distance Distance distance distance
(output_object) singlechannelimage →
object HImage HObject HImage Hobject * (real)
Distanzbild.
Score Score Score Score score score
(output_object) singlechannelimage →
object HImage HObject HImage Hobject * (real)
Maß für die Zuverlässigkeit eines Disparitätwertes.
CamParamRect1 CamParamRect1 CamParamRect1 CamParamRect1 camParamRect1 cam_param_rect_1
(input_control) campar →
HCamPar , HTuple Sequence[Union[int, float, str]] HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Interne Kameraparameter der rektifizierten Kamera 1.
CamParamRect2 CamParamRect2 CamParamRect2 CamParamRect2 camParamRect2 cam_param_rect_2
(input_control) campar →
HCamPar , HTuple Sequence[Union[int, float, str]] HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Interne Kameraparameter der rektifizierten Kamera 2.
RelPoseRect RelPoseRect RelPoseRect RelPoseRect relPoseRect rel_pose_rect
(input_control) pose →
HPose , HTuple Sequence[Union[int, float]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Punkttransformation von entzerrter Kamera 2 zu
entzerrter Kamera 1.
Parameteranzahl: 7
Method Method Method Method method method
(input_control) string →
HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Korrespondenzverfahren.
Defaultwert:
'ncc'
"ncc"
"ncc"
"ncc"
"ncc"
"ncc"
Werteliste: 'ncc' "ncc" "ncc" "ncc" "ncc" "ncc" , 'sad' "sad" "sad" "sad" "sad" "sad" , 'ssd' "ssd" "ssd" "ssd" "ssd" "ssd"
MaskWidth MaskWidth MaskWidth MaskWidth maskWidth mask_width
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Breite des Korrelationsfensters.
Defaultwert: 11
Wertevorschläge: 5, 7, 9, 11, 21
Restriktion: 3 <= MaskWidth && odd(MaskWidth)
MaskHeight MaskHeight MaskHeight MaskHeight maskHeight mask_height
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Höhe des Korrelationsfensters.
Defaultwert: 11
Wertevorschläge: 5, 7, 9, 11, 21
Restriktion: 3 <= MaskHeight && odd(MaskHeight)
TextureThresh TextureThresh TextureThresh TextureThresh textureThresh texture_thresh
(input_control) real →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Schwellenwert der Grauwertvarianz.
Defaultwert: 0.0
Wertevorschläge: 0.0, 2.0, 5.0, 10.0
Restriktion: 0.0 <= TextureThresh
MinDisparity MinDisparity MinDisparity MinDisparity minDisparity min_disparity
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Minimale erwartete Disparität.
Defaultwert: 0
Typischer Wertebereich: -32768
≤
MinDisparity
MinDisparity
MinDisparity
MinDisparity
minDisparity
min_disparity
≤
32767
MaxDisparity MaxDisparity MaxDisparity MaxDisparity maxDisparity max_disparity
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Maximale erwartete Disparität.
Defaultwert: 30
Typischer Wertebereich: -32768
≤
MaxDisparity
MaxDisparity
MaxDisparity
MaxDisparity
maxDisparity
max_disparity
≤
32767
NumLevels NumLevels NumLevels NumLevels numLevels num_levels
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Anzahl der Pyramidenstufen.
Defaultwert: 1
Wertevorschläge: 1, 2, 3, 4
Restriktion: 1 <= NumLevels
ScoreThresh ScoreThresh ScoreThresh ScoreThresh scoreThresh score_thresh
(input_control) real →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Schwellenwert der Korrelationsfunktion.
Defaultwert: 0.0
Wertevorschläge: 0.0, 2.0, 5.0, 10.0
Filter Filter Filter Filter filter filter
(input_control) string(-array) →
HTuple MaybeSequence[str] HTuple Htuple (string) (string ) (HString ) (char* )
Verwendeter Filter.
Defaultwert:
'none'
"none"
"none"
"none"
"none"
"none"
Werteliste: 'left_right_check' "left_right_check" "left_right_check" "left_right_check" "left_right_check" "left_right_check" , 'none' "none" "none" "none" "none" "none"
SubDistance SubDistance SubDistance SubDistance subDistance sub_distance
(input_control) string(-array) →
HTuple MaybeSequence[str] HTuple Htuple (string) (string ) (HString ) (char* )
Distanz Interpolation.
Defaultwert:
'none'
"none"
"none"
"none"
"none"
"none"
Werteliste: 'interpolation' "interpolation" "interpolation" "interpolation" "interpolation" "interpolation" , 'none' "none" "none" "none" "none" "none"
Beispiel (HDevelop)
* Set internal and external stereo parameters.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -665, 5.2e-006, 5.2e-006, \
622, 517, 1280, 1024, CamParam1)
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
654, 519, 1280, 1024, CamParam2)
create_pose (0.1535,-0.0037,0.0447,0.17,319.84,359.89, \
'Rp+T', 'gba', 'point', RelPose)
* Compute the mapping for rectified images.
gen_binocular_rectification_map (Map1, Map2, CamParam1, CamParam2, \
RelPose, 1, 'viewing_direction', \
'bilinear', CamParamRect1, CamParamRect2, \
Cam1PoseRect1, Cam2PoseRect2, RelPoseRect)
* Compute the distance values in online images.
while (1)
grab_image_async (Image1, AcqHandle1, -1)
map_image (Image1, Map1, ImageRect1)
grab_image_async (Image2, AcqHandle2, -1)
map_image (Image2, Map2, ImageRect2)
binocular_distance (ImageRect1, ImageRect2, Distance, Score, \
CamParamRect1, CamParamRect2, RelPoseRect, 'sad', \
11, 11, 20, -40, 20, 2, 25, \
'left_right_check', 'interpolation')
endwhile
Beispiel (HDevelop)
* Set internal and external stereo parameters.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -665, 5.2e-006, 5.2e-006, \
622, 517, 1280, 1024, CamParam1)
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
654, 519, 1280, 1024, CamParam2)
create_pose (0.1535,-0.0037,0.0447,0.17,319.84,359.89, \
'Rp+T', 'gba', 'point', RelPose)
* Compute the mapping for rectified images.
gen_binocular_rectification_map (Map1, Map2, CamParam1, CamParam2, \
RelPose, 1, 'viewing_direction', \
'bilinear', CamParamRect1, CamParamRect2, \
Cam1PoseRect1, Cam2PoseRect2, RelPoseRect)
* Compute the distance values in online images.
while (1)
grab_image_async (Image1, AcqHandle1, -1)
map_image (Image1, Map1, ImageRect1)
grab_image_async (Image2, AcqHandle2, -1)
map_image (Image2, Map2, ImageRect2)
binocular_distance (ImageRect1, ImageRect2, Distance, Score, \
CamParamRect1, CamParamRect2, RelPoseRect, 'sad', \
11, 11, 20, -40, 20, 2, 25, \
'left_right_check', 'interpolation')
endwhile
Beispiel (C++)
// Set internal and external stereo parameters.
// Note that, typically, these values are the result of a prior
// calibration.
gen_cam_par_area_scan_division (0.01, -665, 5.2e-006, 5.2e-006,
622, 517, 1280, 1024, &CamParam1);
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006,
654, 519, 1280, 1024, &CamParam2);
create_pose (0.1535,-0.0037,0.0447,0.17,319.84,359.89,
"Rp+T", "gba", "point", &RelPose);
// Compute the mapping for rectified images.
gen_binocular_rectification_map(&Map1,&Map2,CamParam1,CamParam2,
RelPose,1,"viewing_direction",
"bilinear",&CamParamRect1,&CamParamRect2,
&CamPoseRect1,&CamPoseRect2,&RelPoseRect);
// Compute the distance values in online images.
while (1)
{
grab_image_async(&Image1,AcqHandle1,-1);
map_image(Image1,Map1,&ImageRect1);
grab_image_async(&Image2,AcqHandle2,-1);
map_image(Image2,Map2,&ImageRect2);
binocular_distance(ImageRect1,ImageRect2,&Distance,&Score,
CamParamRect1,CamParamRect2,RelPose,"sad",
11,11,20,-40,20,2,25,
"left_right_check","interpolation");
}
Beispiel (HDevelop)
* Set internal and external stereo parameters.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -665, 5.2e-006, 5.2e-006, \
622, 517, 1280, 1024, CamParam1)
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
654, 519, 1280, 1024, CamParam2)
create_pose (0.1535,-0.0037,0.0447,0.17,319.84,359.89, \
'Rp+T', 'gba', 'point', RelPose)
* Compute the mapping for rectified images.
gen_binocular_rectification_map (Map1, Map2, CamParam1, CamParam2, \
RelPose, 1, 'viewing_direction', \
'bilinear', CamParamRect1, CamParamRect2, \
Cam1PoseRect1, Cam2PoseRect2, RelPoseRect)
* Compute the distance values in online images.
while (1)
grab_image_async (Image1, AcqHandle1, -1)
map_image (Image1, Map1, ImageRect1)
grab_image_async (Image2, AcqHandle2, -1)
map_image (Image2, Map2, ImageRect2)
binocular_distance (ImageRect1, ImageRect2, Distance, Score, \
CamParamRect1, CamParamRect2, RelPoseRect, 'sad', \
11, 11, 20, -40, 20, 2, 25, \
'left_right_check', 'interpolation')
endwhile
Beispiel (HDevelop)
* Set internal and external stereo parameters.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -665, 5.2e-006, 5.2e-006, \
622, 517, 1280, 1024, CamParam1)
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
654, 519, 1280, 1024, CamParam2)
create_pose (0.1535,-0.0037,0.0447,0.17,319.84,359.89, \
'Rp+T', 'gba', 'point', RelPose)
* Compute the mapping for rectified images.
gen_binocular_rectification_map (Map1, Map2, CamParam1, CamParam2, \
RelPose, 1, 'viewing_direction', \
'bilinear', CamParamRect1, CamParamRect2, \
Cam1PoseRect1, Cam2PoseRect2, RelPoseRect)
* Compute the distance values in online images.
while (1)
grab_image_async (Image1, AcqHandle1, -1)
map_image (Image1, Map1, ImageRect1)
grab_image_async (Image2, AcqHandle2, -1)
map_image (Image2, Map2, ImageRect2)
binocular_distance (ImageRect1, ImageRect2, Distance, Score, \
CamParamRect1, CamParamRect2, RelPoseRect, 'sad', \
11, 11, 20, -40, 20, 2, 25, \
'left_right_check', 'interpolation')
endwhile
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity BinocularDisparity binocular_disparity
den Wert TRUE.
Vorgänger
map_image map_image MapImage MapImage MapImage map_image
Nachfolger
threshold threshold Threshold Threshold Threshold threshold
Alternativen
binocular_distance_mg binocular_distance_mg BinocularDistanceMg BinocularDistanceMg BinocularDistanceMg binocular_distance_mg
,
binocular_distance_ms binocular_distance_ms BinocularDistanceMs BinocularDistanceMs BinocularDistanceMs binocular_distance_ms
,
binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity BinocularDisparity binocular_disparity
,
binocular_disparity_mg binocular_disparity_mg BinocularDisparityMg BinocularDisparityMg BinocularDisparityMg binocular_disparity_mg
,
binocular_disparity_ms binocular_disparity_ms BinocularDisparityMs BinocularDisparityMs BinocularDisparityMs binocular_disparity_ms
Siehe auch
map_image map_image MapImage MapImage MapImage map_image
,
gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
,
binocular_calibration binocular_calibration BinocularCalibration BinocularCalibration BinocularCalibration binocular_calibration
,
distance_to_disparity distance_to_disparity DistanceToDisparity DistanceToDisparity DistanceToDisparity distance_to_disparity
,
disparity_to_distance disparity_to_distance DisparityToDistance DisparityToDistance DisparityToDistance disparity_to_distance
,
disparity_image_to_xyz disparity_image_to_xyz DisparityImageToXyz DisparityImageToXyz DisparityImageToXyz disparity_image_to_xyz
Modul
3D Metrology