Name
match_essential_matrix_ransac T_match_essential_matrix_ransac MatchEssentialMatrixRansac match_essential_matrix_ransac MatchEssentialMatrixRansac MatchEssentialMatrixRansac — Automatische Bestimmung der Essential-Matrix für ein Stereo-Bildpaar durch
Zuordnung von Bildpunkten.
match_essential_matrix_ransac (Image1 , Image2 : : Rows1 , Cols1 , Rows2 , Cols2 , CamMat1 , CamMat2 , GrayMatchMethod , MaskSize , RowMove , ColMove , RowTolerance , ColTolerance , Rotation , MatchThreshold , EstimationMethod , DistanceThreshold , RandSeed : EMatrix , CovEMat , Error , Points1 , Points2 )
Herror T_match_essential_matrix_ransac (const Hobject Image1 , const Hobject Image2 , const Htuple Rows1 , const Htuple Cols1 , const Htuple Rows2 , const Htuple Cols2 , const Htuple CamMat1 , const Htuple CamMat2 , const Htuple GrayMatchMethod , const Htuple MaskSize , const Htuple RowMove , const Htuple ColMove , const Htuple RowTolerance , const Htuple ColTolerance , const Htuple Rotation , const Htuple MatchThreshold , const Htuple EstimationMethod , const Htuple DistanceThreshold , const Htuple RandSeed , Htuple* EMatrix , Htuple* CovEMat , Htuple* Error , Htuple* Points1 , Htuple* Points2 )
Herror match_essential_matrix_ransac (Hobject Image1 , Hobject Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HTuple& CamMat1 , const HTuple& CamMat2 , const HTuple& GrayMatchMethod , const HTuple& MaskSize , const HTuple& RowMove , const HTuple& ColMove , const HTuple& RowTolerance , const HTuple& ColTolerance , const HTuple& Rotation , const HTuple& MatchThreshold , const HTuple& EstimationMethod , const HTuple& DistanceThreshold , const HTuple& RandSeed , HTuple* EMatrix , HTuple* CovEMat , HTuple* Error , HTuple* Points1 , HTuple* Points2 )
HTuple HImage ::MatchEssentialMatrixRansac (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HTuple& CamMat1 , const HTuple& CamMat2 , const HTuple& GrayMatchMethod , const HTuple& MaskSize , const HTuple& RowMove , const HTuple& ColMove , const HTuple& RowTolerance , const HTuple& ColTolerance , const HTuple& Rotation , const HTuple& MatchThreshold , const HTuple& EstimationMethod , const HTuple& DistanceThreshold , const HTuple& RandSeed , HTuple* CovEMat , HTuple* Error , HTuple* Points1 , HTuple* Points2 ) const
void MatchEssentialMatrixRansac (const HObject& Image1 , const HObject& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HTuple& CamMat1 , const HTuple& CamMat2 , const HTuple& GrayMatchMethod , const HTuple& MaskSize , const HTuple& RowMove , const HTuple& ColMove , const HTuple& RowTolerance , const HTuple& ColTolerance , const HTuple& Rotation , const HTuple& MatchThreshold , const HTuple& EstimationMethod , const HTuple& DistanceThreshold , const HTuple& RandSeed , HTuple* EMatrix , HTuple* CovEMat , HTuple* Error , HTuple* Points1 , HTuple* Points2 )
HHomMat2D HImage ::MatchEssentialMatrixRansac (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HHomMat2D& CamMat1 , const HHomMat2D& CamMat2 , const HString& GrayMatchMethod , Hlong MaskSize , Hlong RowMove , Hlong ColMove , Hlong RowTolerance , Hlong ColTolerance , const HTuple& Rotation , const HTuple& MatchThreshold , const HString& EstimationMethod , const HTuple& DistanceThreshold , Hlong RandSeed , HTuple* CovEMat , HTuple* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HImage ::MatchEssentialMatrixRansac (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HHomMat2D& CamMat1 , const HHomMat2D& CamMat2 , const HString& GrayMatchMethod , Hlong MaskSize , Hlong RowMove , Hlong ColMove , Hlong RowTolerance , Hlong ColTolerance , double Rotation , Hlong MatchThreshold , const HString& EstimationMethod , double DistanceThreshold , Hlong RandSeed , HTuple* CovEMat , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HImage ::MatchEssentialMatrixRansac (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HHomMat2D& CamMat1 , const HHomMat2D& CamMat2 , const char* GrayMatchMethod , Hlong MaskSize , Hlong RowMove , Hlong ColMove , Hlong RowTolerance , Hlong ColTolerance , double Rotation , Hlong MatchThreshold , const char* EstimationMethod , double DistanceThreshold , Hlong RandSeed , HTuple* CovEMat , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HHomMat2D ::MatchEssentialMatrixRansac (const HImage& Image1 , const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HHomMat2D& CamMat2 , const HString& GrayMatchMethod , Hlong MaskSize , Hlong RowMove , Hlong ColMove , Hlong RowTolerance , Hlong ColTolerance , const HTuple& Rotation , const HTuple& MatchThreshold , const HString& EstimationMethod , const HTuple& DistanceThreshold , Hlong RandSeed , HTuple* CovEMat , HTuple* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HHomMat2D ::MatchEssentialMatrixRansac (const HImage& Image1 , const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HHomMat2D& CamMat2 , const HString& GrayMatchMethod , Hlong MaskSize , Hlong RowMove , Hlong ColMove , Hlong RowTolerance , Hlong ColTolerance , double Rotation , Hlong MatchThreshold , const HString& EstimationMethod , double DistanceThreshold , Hlong RandSeed , HTuple* CovEMat , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HHomMat2D ::MatchEssentialMatrixRansac (const HImage& Image1 , const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HHomMat2D& CamMat2 , const char* GrayMatchMethod , Hlong MaskSize , Hlong RowMove , Hlong ColMove , Hlong RowTolerance , Hlong ColTolerance , double Rotation , Hlong MatchThreshold , const char* EstimationMethod , double DistanceThreshold , Hlong RandSeed , HTuple* CovEMat , double* Error , HTuple* Points1 , HTuple* Points2 ) const
void HOperatorSetX .MatchEssentialMatrixRansac ( [in] IHUntypedObjectX* Image1 , [in] IHUntypedObjectX* Image2 , [in] VARIANT Rows1 , [in] VARIANT Cols1 , [in] VARIANT Rows2 , [in] VARIANT Cols2 , [in] VARIANT CamMat1 , [in] VARIANT CamMat2 , [in] VARIANT GrayMatchMethod , [in] VARIANT MaskSize , [in] VARIANT RowMove , [in] VARIANT ColMove , [in] VARIANT RowTolerance , [in] VARIANT ColTolerance , [in] VARIANT Rotation , [in] VARIANT MatchThreshold , [in] VARIANT EstimationMethod , [in] VARIANT DistanceThreshold , [in] VARIANT RandSeed , [out] VARIANT* EMatrix , [out] VARIANT* CovEMat , [out] VARIANT* Error , [out] VARIANT* Points1 , [out] VARIANT* Points2 )
IHHomMat2DX* HImageX .MatchEssentialMatrixRansac ( [in] IHImageX* Image2 , [in] VARIANT Rows1 , [in] VARIANT Cols1 , [in] VARIANT Rows2 , [in] VARIANT Cols2 , [in] IHHomMat2DX* CamMat1 , [in] IHHomMat2DX* CamMat2 , [in] BSTR GrayMatchMethod , [in] Hlong MaskSize , [in] Hlong RowMove , [in] Hlong ColMove , [in] Hlong RowTolerance , [in] Hlong ColTolerance , [in] VARIANT Rotation , [in] VARIANT MatchThreshold , [in] BSTR EstimationMethod , [in] VARIANT DistanceThreshold , [in] Hlong RandSeed , [out] VARIANT* CovEMat , [out] VARIANT* Error , [out] VARIANT* Points1 , [out] VARIANT* Points2 )
IHHomMat2DX* HHomMat2DX .MatchEssentialMatrixRansac ( [in] IHImageX* Image1 , [in] IHImageX* Image2 , [in] VARIANT Rows1 , [in] VARIANT Cols1 , [in] VARIANT Rows2 , [in] VARIANT Cols2 , [in] IHHomMat2DX* CamMat2 , [in] BSTR GrayMatchMethod , [in] Hlong MaskSize , [in] Hlong RowMove , [in] Hlong ColMove , [in] Hlong RowTolerance , [in] Hlong ColTolerance , [in] VARIANT Rotation , [in] VARIANT MatchThreshold , [in] BSTR EstimationMethod , [in] VARIANT DistanceThreshold , [in] Hlong RandSeed , [out] VARIANT* CovEMat , [out] VARIANT* Error , [out] VARIANT* Points1 , [out] VARIANT* Points2 )
static void HOperatorSet .MatchEssentialMatrixRansac (HObject image1 , HObject image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , HTuple camMat1 , HTuple camMat2 , HTuple grayMatchMethod , HTuple maskSize , HTuple rowMove , HTuple colMove , HTuple rowTolerance , HTuple colTolerance , HTuple rotation , HTuple matchThreshold , HTuple estimationMethod , HTuple distanceThreshold , HTuple randSeed , out HTuple EMatrix , out HTuple covEMat , out HTuple error , out HTuple points1 , out HTuple points2 )
HHomMat2D HImage .MatchEssentialMatrixRansac (HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , HHomMat2D camMat1 , HHomMat2D camMat2 , string grayMatchMethod , int maskSize , int rowMove , int colMove , int rowTolerance , int colTolerance , HTuple rotation , HTuple matchThreshold , string estimationMethod , HTuple distanceThreshold , int randSeed , out HTuple covEMat , out HTuple error , out HTuple points1 , out HTuple points2 )
HHomMat2D HImage .MatchEssentialMatrixRansac (HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , HHomMat2D camMat1 , HHomMat2D camMat2 , string grayMatchMethod , int maskSize , int rowMove , int colMove , int rowTolerance , int colTolerance , double rotation , int matchThreshold , string estimationMethod , double distanceThreshold , int randSeed , out HTuple covEMat , out double error , out HTuple points1 , out HTuple points2 )
HHomMat2D HHomMat2D .MatchEssentialMatrixRansac (HImage image1 , HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , HHomMat2D camMat2 , string grayMatchMethod , int maskSize , int rowMove , int colMove , int rowTolerance , int colTolerance , HTuple rotation , HTuple matchThreshold , string estimationMethod , HTuple distanceThreshold , int randSeed , out HTuple covEMat , out HTuple error , out HTuple points1 , out HTuple points2 )
HHomMat2D HHomMat2D .MatchEssentialMatrixRansac (HImage image1 , HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , HHomMat2D camMat2 , string grayMatchMethod , int maskSize , int rowMove , int colMove , int rowTolerance , int colTolerance , double rotation , int matchThreshold , string estimationMethod , double distanceThreshold , int randSeed , out HTuple covEMat , out double error , out HTuple points1 , out HTuple points2 )
Ausgehend von einer Menge charakteristischer Punkte
(Rows1 Rows1 Rows1 Rows1 Rows1 rows1 ,Cols1 Cols1 Cols1 Cols1 Cols1 cols1 ) und
(Rows2 Rows2 Rows2 Rows2 Rows2 rows2 ,Cols2 Cols2 Cols2 Cols2 Cols2 cols2 ) in den beiden Eingabebildern
Image1 Image1 Image1 Image1 Image1 image1 , Image2 Image2 Image2 Image2 Image2 image2 und bekannten Kameramatrizen
CamMat1 CamMat1 CamMat1 CamMat1 CamMat1 camMat1 , CamMat2 CamMat2 CamMat2 CamMat2 CamMat2 camMat2
bestimmt match_essential_matrix_ransac match_essential_matrix_ransac MatchEssentialMatrixRansac match_essential_matrix_ransac MatchEssentialMatrixRansac MatchEssentialMatrixRansac automatisch die Geometrie
der Stereokonfiguration und findet die Korrespondenzen zwischen den
Bildpunkten. Die Stereogeometrie ist durch die Essential-Matrix
EMatrix EMatrix EMatrix EMatrix EMatrix EMatrix gegeben, und alle Korrespondenzen müssen die
Epipolargleichung erfüllen.
Der Operator match_essential_matrix_ransac match_essential_matrix_ransac MatchEssentialMatrixRansac match_essential_matrix_ransac MatchEssentialMatrixRansac MatchEssentialMatrixRansac ist für ein lineares
Kameramodell konzipiert. Die internen Kameraparameter werden durch die
Argumente CamMat1 CamMat1 CamMat1 CamMat1 CamMat1 camMat1 , CamMat2 CamMat2 CamMat2 CamMat2 CamMat2 camMat2 übergeben, welche
3x3 obere Dreiecksmatrizen sind und eine affine
Transformation beschreiben. Die Beziehung zwischen einem 3D Richtungsvektor
(X,Y,1) und dessen (projektiven) 2D Bildkoordinaten (col,row,1) ist:
Zu beachten ist hier die Reihenfolge (Spalte/Zeile), welche mit der (x,y)
Notation im Kamerakoordinatensystem konform gehen muss.
Die Brennweite ist mit f bezeichnet,
sind
Skalierungsfaktoren, s beschreibt eine Scherung und
gibt den Bildhauptpunkt an.
Hauptsächlich sind dies die Elemente aus den Kameraparametern, wie sie z.B.
in calibrate_cameras calibrate_cameras CalibrateCameras calibrate_cameras CalibrateCameras CalibrateCameras verwendet werden. Alternativ kann eine
Kameramatrix auch durch andere Elemente beschrieben werden, siehe
z.B. stationary_camera_self_calibration stationary_camera_self_calibration StationaryCameraSelfCalibration stationary_camera_self_calibration StationaryCameraSelfCalibration StationaryCameraSelfCalibration .
Multipliziert man die (projektiven) Bildkoordinaten mit der
invertierten Kameramatrix, so erhält man die 3D
Richtungsvektoren. Für bekannte Kameramatrizen schreibt sich die
Epipolargleichung wie folgt:
Das Matchingverfahren beruht auf charakteristischen Punkten, welche mit
Punktoperatoren, wie z.B. points_foerstner points_foerstner PointsFoerstner points_foerstner PointsFoerstner PointsFoerstner oder
points_harris points_harris PointsHarris points_harris PointsHarris PointsHarris , extrahiert wurden.
Die Bestimmung der Essential-Matrix und der Korrespondenzen erfolgt
in 2 Schritten: Zuerst
werden die Grauwertkorrelationen von Umgebungen der Eingabepunkte im
ersten und zweiten Bild bestimmt und anhand dieser ein initiales
Matching zwischen den Punkten ermittelt. Dann wird das RANSAC-Verfahren
angewendet, um diejenige Essential-Matrix zu finden, welche die Anzahl
der korrespondierenden Punktpaare unter Erfüllung der Epipolarbedingung
maximiert.
Die Größe der Grauwertfenster beträgt MaskSize MaskSize MaskSize MaskSize MaskSize maskSize x MaskSize MaskSize MaskSize MaskSize MaskSize maskSize . Es
können drei Metriken für die Korrelation gewählt werden. Hat
GrayMatchMethod GrayMatchMethod GrayMatchMethod GrayMatchMethod GrayMatchMethod grayMatchMethod den Wert 'ssd' "ssd" "ssd" "ssd" "ssd" "ssd" , so wird das
Quadrat der Grauwertdifferenzen verwendet, 'sad' "sad" "sad" "sad" "sad" "sad" entspricht
dem Betrag der Grauwertdifferenzen und 'ncc' "ncc" "ncc" "ncc" "ncc" "ncc" ist die
normierte Kreuzkorrelation (siehe auch binocular_disparity binocular_disparity BinocularDisparity binocular_disparity BinocularDisparity BinocularDisparity ).
Diese Metrik wird über alle Punktpaare
minimiert ('ssd' "ssd" "ssd" "ssd" "ssd" "ssd" , 'sad' "sad" "sad" "sad" "sad" "sad" ) bzw. maximiert
('ncc' "ncc" "ncc" "ncc" "ncc" "ncc" ), ein so gefundenes Matching wird aber nur
akzeptiert, falls der Wert der Metrik unter dem Wert von
MatchThreshold MatchThreshold MatchThreshold MatchThreshold MatchThreshold matchThreshold ('ssd' "ssd" "ssd" "ssd" "ssd" "ssd" , 'sad' "sad" "sad" "sad" "sad" "sad" ) bzw. über
demselben ('ncc' "ncc" "ncc" "ncc" "ncc" "ncc" ) liegt.
Zur Geschwindigkeitssteigerung kann der Suchbereich für das Matching
eingeschränkt werden. Nur Punkte innerhalb eines
Punkte großen Fensters werden
betrachtet. Die Verschiebung des Mittelpunkts dieses Fensters im
zweiten Bild gegenüber der Position des aktuellen Punktes im ersten
Bild wird durch die Parameter RowMove RowMove RowMove RowMove RowMove rowMove und ColMove ColMove ColMove ColMove ColMove colMove
bestimmt.
Falls die Kameras nicht nur verschoben sind, sondern die zweite
Kamera gegenüber der ersten um die optische Achse gedreht worden
ist, kann im Parameter Rotation Rotation Rotation Rotation Rotation rotation eine Schätzung des
Drehwinkels bzw. ein Winkelintervall im Bogenmaß übergeben
werden. Eine gute Schätzung des Winkels erhöht die Qualität des
Grauwertwertmatchings. Falls sich die tatsächliche Rotation zu
stark von der angegebenen Schätzung unterscheidet, schlägt das
Matching typischerweise fehl. In diesem Fall sollte ein
Winkelintervall angegeben werden. Je größer das angegebene
Winkelintervall, desto langsamer läuft der Operator, denn für alle
relevanten (endlich vielen) Winkel innerhalb des Intervalls wird das
Verfahren komplett durchlaufen.
Ist das initiale Punktmatching bestimmt, wird es anschließend durch
einen randomisierten Auswahlalgorithmus (RANSAC) zur Bestimmung der
Essential-Matrix EMatrix EMatrix EMatrix EMatrix EMatrix EMatrix benutzt. Dabei wird versucht die
Matrix so zu wählen, dass sie bezüglich der Schranke
DistanceThreshold DistanceThreshold DistanceThreshold DistanceThreshold DistanceThreshold distanceThreshold zu möglichst vielen Punktpaaren
konsistent ist.
Der Parameter EstimationMethod EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod gibt an, ob die Kameras sich in einer
besonderen relativen Orientierung zueinander befinden und bestimmt auch das
Berechnungsverfahren. Für 'normalized_dlt' "normalized_dlt" "normalized_dlt" "normalized_dlt" "normalized_dlt" "normalized_dlt" und
'gold_standard' "gold_standard" "gold_standard" "gold_standard" "gold_standard" "gold_standard" kann die relative Lage der Kameras zueinander
beliebig sein.
Für 'trans_normalized_dlt' "trans_normalized_dlt" "trans_normalized_dlt" "trans_normalized_dlt" "trans_normalized_dlt" "trans_normalized_dlt" und 'trans_gold_standard' "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" ist
die relative Lage eine reine Translation.
Für eine eindeutige Korrespondenzfindung ist die minimale Anzahl an
notwendigen Punktkorrespondenzen im allgmeinen Fall sechs und im speziellen
Fall der reinen Translation drei.
Wird 'normalized_dlt' "normalized_dlt" "normalized_dlt" "normalized_dlt" "normalized_dlt" "normalized_dlt" oder 'trans_normalized_dlt' "trans_normalized_dlt" "trans_normalized_dlt" "trans_normalized_dlt" "trans_normalized_dlt" "trans_normalized_dlt"
gewählt, so ist das Berechnungsverfahren ein lineares Verfahren.
Wird 'gold_standard' "gold_standard" "gold_standard" "gold_standard" "gold_standard" "gold_standard" oder 'trans_gold_standard' "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard"
gewählt, so ist das Berechnungsverfahren im statistischen Sinne optimal,
und die Kovarianz der Essential-Matrix CovEMat CovEMat CovEMat CovEMat CovEMat covEMat wird zusätzlich
berechnet.
Es ist zu beachten, dass sich je nach gewähltem Verfahren nicht nur die
berechnete Essential-Matrix unterscheidet, sondern auch die zugeordneten
Punkte verschieden sein können.
Der Wert Error Error Error Error Error error gibt die Qualität des Matchings an und ist
der mittlere euklidische Abstand der Punkte zu ihren
korrespondierenden Epipolarlinien gemessen in Pixeln.
Punktpaare, welche die Konsistenzbedingungen erfüllen, werden als
Korrespondenzen akzeptiert. Points1 Points1 Points1 Points1 Points1 points1 enthält die Indizes der
zugeordneten Eingabepunkte im ersten Bild, Points2 Points2 Points2 Points2 Points2 points2 die Indizes der
dazu korrespondierenden Punkte im zweiten Bild.
Bei dem Operator match_essential_matrix_ransac match_essential_matrix_ransac MatchEssentialMatrixRansac match_essential_matrix_ransac MatchEssentialMatrixRansac MatchEssentialMatrixRansac ist folgender
Spezialfall zu beachten:
Liegen alle zugeordneten Raumpunkte in einer einzigen Ebene und
zusätzlich alle näher zu einer der beiden Kameras,
so gibt es insgesamt zwei Lösungen. Das heißt, dass in diesem Fall das
Problem der Berechnung der Essential-Matrix nicht eindeutig lösbar ist.
Es werden daher auch beide Lösungen ausgegeben. Das bedeutet, dass
die Ausgabeparameter EMatrix EMatrix EMatrix EMatrix EMatrix EMatrix , CovEMat CovEMat CovEMat CovEMat CovEMat covEMat und Error Error Error Error Error error
von doppelter Länge sind, wobei die Werte der zweiten Lösung an die Werte
der ersten Lösung hinten angehängt sind.
Der Parameter RandSeed RandSeed RandSeed RandSeed RandSeed randSeed kann benutzt werden, um das
randomisierte Verhalten des RANSAC-Verfahrens zu kontrollieren und
somit reproduzierbare Ergebnisse zu erhalten. Wird
RandSeed RandSeed RandSeed RandSeed RandSeed randSeed auf einen positiven Wert gesetzt, so liefert der
Operator bei jedem Aufruf mit denselben Parametern auch dasselbe
Resultat, da der intern verwendete Zufallsgenerator mit
RandSeed RandSeed RandSeed RandSeed RandSeed randSeed initialisiert wird. Ist RandSeed RandSeed RandSeed RandSeed RandSeed randSeed =
0 , so wird der Zufallsgenerator mit der aktuellen Zeit
initialisiert. Daher sind in diesem Fall die Ergebnisse unter
Umständen nicht reproduzierbar.
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Wird ohne Parallelisierung verarbeitet.
Zeilenkoordinaten charakteristischer Punkte
in Bild 1.
Restriktion: length(Rows1) >= 6 || length(Rows1) >= 3
Spaltenkoordinaten charakteristischer Punkte
in Bild 1.
Restriktion: length(Cols1) == length(Rows1)
Zeilenkoordinaten charakteristischer Punkte
in Bild 2.
Restriktion: length(Rows2) >= 6 || length(Rows2) >= 3
Spaltenkoordinaten charakteristischer Punkte
in Bild 2.
Restriktion: length(Cols2) == length(Rows2)
Kameramatrix der 1. Kamera.
Kameramatrix der 2. Kamera.
Metrik für den Vergleich der Grauwerte.
Defaultwert:
'ssd'
"ssd"
"ssd"
"ssd"
"ssd"
"ssd"
Werteliste: 'ncc' "ncc" "ncc" "ncc" "ncc" "ncc" , 'sad' "sad" "sad" "sad" "sad" "sad" , 'ssd' "ssd" "ssd" "ssd" "ssd" "ssd"
Größe der Grauwertmaske.
Defaultwert: 10
Typischer Wertebereich: 3
≤
MaskSize
MaskSize
MaskSize
MaskSize
MaskSize
maskSize
≤
15
Restriktion: MaskSize >= 1
Mittlere Zeilenverschiebung.
Defaultwert: 0
Typischer Wertebereich: 0
≤
RowMove
RowMove
RowMove
RowMove
RowMove
rowMove
≤
200
Mittlere Spaltenverschiebung.
Defaultwert: 0
Typischer Wertebereich: 0
≤
ColMove
ColMove
ColMove
ColMove
ColMove
colMove
≤
200
Halbe Höhe des Suchfensters für das Punktmatching.
Defaultwert: 200
Typischer Wertebereich: 50
≤
RowTolerance
RowTolerance
RowTolerance
RowTolerance
RowTolerance
rowTolerance
≤
200
Restriktion: RowTolerance >= 1
Halbe Breite des Suchfensters für das Punktmatching.
Defaultwert: 200
Typischer Wertebereich: 50
≤
ColTolerance
ColTolerance
ColTolerance
ColTolerance
ColTolerance
colTolerance
≤
200
Restriktion: ColTolerance >= 1
Drehwinkelbereich.
Defaultwert: 0.0
Wertevorschläge: 0.0, 0.1, -0.1, 0.7854, 1.571, 3.142
Schwellwert für Grauwertkorrespondenzen.
Defaultwert: 10
Wertevorschläge: 10, 20, 50, 100, 0.9, 0.7
Algorithmus zur Berechnung der Essential-Matrix
und zur Auswahl spezieller relativer Orientierungen.
Defaultwert:
'normalized_dlt'
"normalized_dlt"
"normalized_dlt"
"normalized_dlt"
"normalized_dlt"
"normalized_dlt"
Werteliste: 'gold_standard' "gold_standard" "gold_standard" "gold_standard" "gold_standard" "gold_standard" , 'normalized_dlt' "normalized_dlt" "normalized_dlt" "normalized_dlt" "normalized_dlt" "normalized_dlt" , 'trans_gold_standard' "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" , 'trans_normalized_dlt' "trans_normalized_dlt" "trans_normalized_dlt" "trans_normalized_dlt" "trans_normalized_dlt" "trans_normalized_dlt"
Maximale Abweichung eines Punktes von seiner
Epipolarlinie.
Defaultwert: 1
Typischer Wertebereich: 0.5
≤
DistanceThreshold
DistanceThreshold
DistanceThreshold
DistanceThreshold
DistanceThreshold
distanceThreshold
≤
5
Restriktion: DistanceThreshold > 0
Startwert für den Zufallszahlengenerator.
Defaultwert: 0
Berechnete Essential-Matrix.
9x9 Kovarianzmatrix der
Essential-Matrix.
Mittlerer, quadratischer Epipolar Abstand.
Indizes der zugeordneten Eingabepunkte aus Bild 1.
Indizes der zugeordneten Eingabepunkte aus Bild 2.
points_foerstner points_foerstner PointsFoerstner points_foerstner PointsFoerstner PointsFoerstner ,
points_harris points_harris PointsHarris points_harris PointsHarris PointsHarris
vector_to_essential_matrix vector_to_essential_matrix VectorToEssentialMatrix vector_to_essential_matrix VectorToEssentialMatrix VectorToEssentialMatrix
match_fundamental_matrix_ransac match_fundamental_matrix_ransac MatchFundamentalMatrixRansac match_fundamental_matrix_ransac MatchFundamentalMatrixRansac MatchFundamentalMatrixRansac ,
match_rel_pose_ransac match_rel_pose_ransac MatchRelPoseRansac match_rel_pose_ransac MatchRelPoseRansac MatchRelPoseRansac ,
stationary_camera_self_calibration stationary_camera_self_calibration StationaryCameraSelfCalibration stationary_camera_self_calibration StationaryCameraSelfCalibration StationaryCameraSelfCalibration
Richard Hartley, Andrew Zisserman: „Multiple View Geometry in
Computer Vision“; Cambridge University Press, Cambridge; 2003.
Olivier Faugeras, Quang-Tuan Luong: „The Geometry of Multiple
Images: The Laws That Govern the Formation of Multiple Images of a
Scene and Some of Their Applications“; MIT Press, Cambridge, MA;
2001.
3D Metrology