Name
match_fundamental_matrix_distortion_ransac T_match_fundamental_matrix_distortion_ransac MatchFundamentalMatrixDistortionRansac match_fundamental_matrix_distortion_ransac MatchFundamentalMatrixDistortionRansac MatchFundamentalMatrixDistortionRansac — Automatische Bestimmung der Fundamental-Matrix und des radialen
Verzeichnungskoeffizienten für ein Stereo-Bildpaar durch Zuordnung
von Bildpunkten.
match_fundamental_matrix_distortion_ransac (Image1 , Image2 : : Rows1 , Cols1 , Rows2 , Cols2 , GrayMatchMethod , MaskSize , RowMove , ColMove , RowTolerance , ColTolerance , Rotation , MatchThreshold , EstimationMethod , DistanceThreshold , RandSeed : FMatrix , Kappa , Error , Points1 , Points2 )
Herror T_match_fundamental_matrix_distortion_ransac (const Hobject Image1 , const Hobject Image2 , const Htuple Rows1 , const Htuple Cols1 , const Htuple Rows2 , const Htuple Cols2 , 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* FMatrix , Htuple* Kappa , Htuple* Error , Htuple* Points1 , Htuple* Points2 )
Herror match_fundamental_matrix_distortion_ransac (Hobject Image1 , Hobject Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , 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* FMatrix , HTuple* Kappa , HTuple* Error , HTuple* Points1 , HTuple* Points2 )
HTuple HImage ::MatchFundamentalMatrixDistortionRansac (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , 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* Kappa , HTuple* Error , HTuple* Points1 , HTuple* Points2 ) const
void MatchFundamentalMatrixDistortionRansac (const HObject& Image1 , const HObject& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , 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* FMatrix , HTuple* Kappa , HTuple* Error , HTuple* Points1 , HTuple* Points2 )
HHomMat2D HImage ::MatchFundamentalMatrixDistortionRansac (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , 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 , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HImage ::MatchFundamentalMatrixDistortionRansac (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HString& GrayMatchMethod , Hlong MaskSize , Hlong RowMove , Hlong ColMove , Hlong RowTolerance , Hlong ColTolerance , double Rotation , Hlong MatchThreshold , const HString& EstimationMethod , double DistanceThreshold , Hlong RandSeed , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HImage ::MatchFundamentalMatrixDistortionRansac (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const char* GrayMatchMethod , Hlong MaskSize , Hlong RowMove , Hlong ColMove , Hlong RowTolerance , Hlong ColTolerance , double Rotation , Hlong MatchThreshold , const char* EstimationMethod , double DistanceThreshold , Hlong RandSeed , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
double HHomMat2D ::MatchFundamentalMatrixDistortionRansac (const HImage& Image1 , const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , 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 , double* Error , HTuple* Points1 , HTuple* Points2 )
double HHomMat2D ::MatchFundamentalMatrixDistortionRansac (const HImage& Image1 , const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HString& GrayMatchMethod , Hlong MaskSize , Hlong RowMove , Hlong ColMove , Hlong RowTolerance , Hlong ColTolerance , double Rotation , Hlong MatchThreshold , const HString& EstimationMethod , double DistanceThreshold , Hlong RandSeed , double* Error , HTuple* Points1 , HTuple* Points2 )
double HHomMat2D ::MatchFundamentalMatrixDistortionRansac (const HImage& Image1 , const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const char* GrayMatchMethod , Hlong MaskSize , Hlong RowMove , Hlong ColMove , Hlong RowTolerance , Hlong ColTolerance , double Rotation , Hlong MatchThreshold , const char* EstimationMethod , double DistanceThreshold , Hlong RandSeed , double* Error , HTuple* Points1 , HTuple* Points2 )
void HOperatorSetX .MatchFundamentalMatrixDistortionRansac ( [in] IHUntypedObjectX* Image1 , [in] IHUntypedObjectX* Image2 , [in] VARIANT Rows1 , [in] VARIANT Cols1 , [in] VARIANT Rows2 , [in] VARIANT Cols2 , [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* FMatrix , [out] VARIANT* Kappa , [out] VARIANT* Error , [out] VARIANT* Points1 , [out] VARIANT* Points2 )
IHHomMat2DX* HImageX .MatchFundamentalMatrixDistortionRansac ( [in] IHImageX* Image2 , [in] VARIANT Rows1 , [in] VARIANT Cols1 , [in] VARIANT Rows2 , [in] VARIANT Cols2 , [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] double* Kappa , [out] double* Error , [out] VARIANT* Points1 , [out] VARIANT* Points2 )
double HHomMat2DX .MatchFundamentalMatrixDistortionRansac ( [in] IHImageX* Image1 , [in] IHImageX* Image2 , [in] VARIANT Rows1 , [in] VARIANT Cols1 , [in] VARIANT Rows2 , [in] VARIANT Cols2 , [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] double* Error , [out] VARIANT* Points1 , [out] VARIANT* Points2 )
static void HOperatorSet .MatchFundamentalMatrixDistortionRansac (HObject image1 , HObject image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , HTuple grayMatchMethod , HTuple maskSize , HTuple rowMove , HTuple colMove , HTuple rowTolerance , HTuple colTolerance , HTuple rotation , HTuple matchThreshold , HTuple estimationMethod , HTuple distanceThreshold , HTuple randSeed , out HTuple FMatrix , out HTuple kappa , out HTuple error , out HTuple points1 , out HTuple points2 )
HHomMat2D HImage .MatchFundamentalMatrixDistortionRansac (HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , string grayMatchMethod , int maskSize , int rowMove , int colMove , int rowTolerance , int colTolerance , HTuple rotation , HTuple matchThreshold , string estimationMethod , HTuple distanceThreshold , int randSeed , out double kappa , out double error , out HTuple points1 , out HTuple points2 )
HHomMat2D HImage .MatchFundamentalMatrixDistortionRansac (HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , string grayMatchMethod , int maskSize , int rowMove , int colMove , int rowTolerance , int colTolerance , double rotation , int matchThreshold , string estimationMethod , double distanceThreshold , int randSeed , out double kappa , out double error , out HTuple points1 , out HTuple points2 )
double HHomMat2D .MatchFundamentalMatrixDistortionRansac (HImage image1 , HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , string grayMatchMethod , int maskSize , int rowMove , int colMove , int rowTolerance , int colTolerance , HTuple rotation , HTuple matchThreshold , string estimationMethod , HTuple distanceThreshold , int randSeed , out double error , out HTuple points1 , out HTuple points2 )
double HHomMat2D .MatchFundamentalMatrixDistortionRansac (HImage image1 , HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , string grayMatchMethod , int maskSize , int rowMove , int colMove , int rowTolerance , int colTolerance , double rotation , int matchThreshold , string estimationMethod , double distanceThreshold , int randSeed , 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 und Image2 Image2 Image2 Image2 Image2 image2 , welche dieselbe Größe besitzen
müssen, bestimmt match_fundamental_matrix_distortion_ransac match_fundamental_matrix_distortion_ransac MatchFundamentalMatrixDistortionRansac match_fundamental_matrix_distortion_ransac MatchFundamentalMatrixDistortionRansac MatchFundamentalMatrixDistortionRansac
automatisch die Korrespondenz der Punkte, die Fundamental-Matrix
FMatrix FMatrix FMatrix FMatrix FMatrix FMatrix und den radialen Verzeichnungskoeffizienten
Kappa Kappa Kappa Kappa Kappa kappa
, welche die Epipolargleichung
am besten erfüllen. Hierbei sind
Bildpunkte, die durch
Entzerrung der Eingabebildpunkte mit dem Divisionsmodell entstehen
(siehe calibrate_cameras calibrate_cameras CalibrateCameras calibrate_cameras CalibrateCameras CalibrateCameras ):
Hierbei bezeichnen
die verzerrten
Bildpunkte relativ zum Bildmittelpunkt und w und h die Breite
und Höhe der Eingabebilder.
match_fundamental_matrix_distortion_ransac match_fundamental_matrix_distortion_ransac MatchFundamentalMatrixDistortionRansac match_fundamental_matrix_distortion_ransac MatchFundamentalMatrixDistortionRansac MatchFundamentalMatrixDistortionRansac nimmt also an,
dass der Hauptpunkt, d.h. das Zentrum der radialen Verzeichnungen,
im Bildmittelpunkt liegt.
Das zurückgelieferte Kappa Kappa Kappa Kappa Kappa kappa kann dazu verwendet werden,
Kameraparameter zu konstruieren, die zur Entzerrung von Bildern oder
Bildpunkten verwendet werden können (siehe
change_radial_distortion_cam_par change_radial_distortion_cam_par ChangeRadialDistortionCamPar change_radial_distortion_cam_par ChangeRadialDistortionCamPar ChangeRadialDistortionCamPar ,
change_radial_distortion_image change_radial_distortion_image ChangeRadialDistortionImage change_radial_distortion_image ChangeRadialDistortionImage ChangeRadialDistortionImage und
change_radial_distortion_points change_radial_distortion_points ChangeRadialDistortionPoints change_radial_distortion_points ChangeRadialDistortionPoints ChangeRadialDistortionPoints ):
Zu beachten bei den obigen Formeln ist die Position von Spalte bzw.
Zeile in den Punktkoordinaten. Da die Fundamental-Matrix die
projektive Beziehung zweier Stereobilder im 3D Raum wiedergibt, muss
die X/Y Notation mit dem Kamerakoordinatensystem konform sein.
(X,Y) Koordinaten entsprechen daher einem (Column,Row) Paar.
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
Korrespondenzen erfolgt in 2 Schritten: Zuerst werden die
Grauwertkorrelationen der 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 die Fundamental-Matrix und den radialen
Verzeichnungskoeffizienten zu finden, welche die Anzahl der
korrespondierenden Punktpaare unter Erfüllung der Epipolarbedingung
maximieren.
Die Größe der Grauwertfenster, die für das Matching verwendet
werden, 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" ), eine so gefundene
Korrespondenz 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 die
Match-Kandidaten auf ein Rechteck, das durch Größe und Verschiebung
spezifiziert wird, 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 (automatisch bestimmten) 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
Fundamental-Matrix FMatrix FMatrix FMatrix FMatrix FMatrix FMatrix und des radialen
Verzeichnungskoeffizienten Kappa Kappa Kappa Kappa Kappa kappa benutzt. Dabei wird
versucht, diese Parameter 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 'linear' "linear" "linear" "linear" "linear" "linear" und
'gold_standard' "gold_standard" "gold_standard" "gold_standard" "gold_standard" "gold_standard" kann die relative Lage der Kameras
zueinander beliebig sein. 'trans_linear' "trans_linear" "trans_linear" "trans_linear" "trans_linear" "trans_linear" oder
'trans_gold_standard' "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" ist zu wählen, wenn die relative Lage
der beiden Kameras eine reine Translation ist und die linke und
rechte Kamera identisch sind. Für eine eindeutige
Korrespondenzfindung ist die minimale Anzahl an notwendigen
Punktkorrespondenzen im allgemeinen Fall neun und im speziellen Fall
der reinen Translation vier.
Wird EstimationMethod EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod auf 'linear' "linear" "linear" "linear" "linear" "linear" oder
'trans_linear' "trans_linear" "trans_linear" "trans_linear" "trans_linear" "trans_linear" gesetzt, so ist das Berechnungsverfahren ein
lineares Verfahren. Dieses Verfahren ist sehr schnell. Für den
Fall der reinen Translation (EstimationMethod EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod =
'trans_linear' "trans_linear" "trans_linear" "trans_linear" "trans_linear" "trans_linear" ) liefert das lineare Verfahren genaue
Ergebnisse für geringes bis mittleres Rauschen der Punktkoordinaten
und für die meisten Verzeichnungen (außer sehr kleinen
Verzeichnungen). Für eine beliebige Lage der Kameras
(EstimationMethod EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod = 'linear' "linear" "linear" "linear" "linear" "linear" ) liefert das
lineare Verfahren nur für sehr geringes Rauschen der
Punktkoordinaten und hinreichend große Verzeichnungen genaue
Ergebnisse. Für EstimationMethod EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod gleich
'gold_standard' "gold_standard" "gold_standard" "gold_standard" "gold_standard" "gold_standard" bzw. 'trans_gold_standard' "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" wird
eine mathematisch optimale, dafür aber langsamere, Optimierung
durchgeführt, die den geometrischen Reprojektionsfehler von
rekonstruierten projektiven 3D Punkten minimiert. Für eine
beliebige Lage der Kameras sollte im allgemeinen
EstimationMethod EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod = 'gold_standard' "gold_standard" "gold_standard" "gold_standard" "gold_standard" "gold_standard" gewählt
werden.
Der Wert Error Error Error Error Error error gibt die Qualität des Matchings an und ist
der mittlere symmetrische 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.
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.
Eingabepunkte in Bild 1 (Zeilenkoordinate).
Restriktion: length(Rows1) >= 9 || length(Rows1) >= 4
Eingabepunkte in Bild 1 (Spaltenkoordinate).
Restriktion: length(Cols1) == length(Rows1)
Eingabepunkte in Bild 2 (Zeilenkoordinate).
Restriktion: length(Rows2) >= 9 || length(Rows2) >= 4
Eingabepunkte in Bild 2 (Spaltenkoordinate).
Restriktion: length(Cols2) == length(Rows2)
Metrik für den Vergleich der Grauwerte.
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"
Größe der Grauwertmasken.
Defaultwert: 10
Typischer Wertebereich: 3
≤
MaskSize
MaskSize
MaskSize
MaskSize
MaskSize
maskSize
≤
15
Restriktion: MaskSize >= 1
Mittlere Zeilenverschiebung.
Defaultwert: 0
Mittlere Spaltenverschiebung.
Defaultwert: 0
Halbe Höhe des Suchfensters für das Punktmatching.
Defaultwert: 200
Restriktion: RowTolerance >= 1
Halbe Breite des Suchfensters für das Punktmatching.
Defaultwert: 200
Restriktion: ColTolerance >= 1
Schätzung für die Rotation des zweiten Bildes relativ
zum ersten Bild.
Defaultwert: 0.0
Wertevorschläge: 0.0, 0.1, -0.1, 0.7854, 1.571, 3.142
Schwellwert für Grauwertkorrespondenzen.
Defaultwert: 0.7
Wertevorschläge: 0.9, 0.7, 0.5, 10, 20, 50, 100
Algorithmus zur Berechnung der Fundamental-Matrix
und zur Auswahl spezieller relativer Orientierungen.
Defaultwert:
'gold_standard'
"gold_standard"
"gold_standard"
"gold_standard"
"gold_standard"
"gold_standard"
Werteliste: 'gold_standard' "gold_standard" "gold_standard" "gold_standard" "gold_standard" "gold_standard" , 'linear' "linear" "linear" "linear" "linear" "linear" , 'trans_gold_standard' "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" "trans_gold_standard" , 'trans_linear' "trans_linear" "trans_linear" "trans_linear" "trans_linear" "trans_linear"
Maximale Abweichung eines Punktes von seiner
Epipolarlinie.
Defaultwert: 1
Restriktion: DistanceThreshold > 0
Startwert für den Zufallszahlengenerator.
Defaultwert: 0
Berechnete Fundamental-Matrix.
Berechneter Verzeichnungskoeffizient.
Mittlerer quadratischer Epipolarabstand.
Indizes der zugeordneten Eingabepunkte aus Bild 1.
Indizes der zugeordneten Eingabepunkte aus Bild 2.
points_foerstner (Image1, 1, 2, 3, 200, 0.1, 'gauss', 'true', \
Rows1, Cols1, _, _, _, _, _, _, _, _)
points_foerstner (Image2, 1, 2, 3, 200, 0.1, 'gauss', 'true', \
Rows2, Cols2, _, _, _, _, _, _, _, _)
match_fundamental_matrix_distortion_ransac (Image1, Image2, \
Rows1, Cols1, Rows2, \
Cols2, 'ncc', 10, 0, 0, \
100, 200, 0, 0.5, \
'trans_gold_standard', \
1, 42, FMatrix, Kappa, \
Error, Points1, Points2)
get_image_size (Image1, Width, Height)
CamParDist := [0.0,Kappa,1.0,1.0,0.5*(Width-1),0.5*Height-1, \
Width,Height]
change_radial_distortion_cam_par ('fixed', CamParDist, 0, CamPar)
change_radial_distortion_image (Image1, Image1, Image1Rect, \
CamParDist, CamPar)
change_radial_distortion_image (Image2, Image2, Image2Rect, \
CamParDist, CamPar)
gen_binocular_proj_rectification (Map1, Map2, FMatrix, [], Width, \
Height, Width, Height, 1, \
'bilinear_map', _, H1, H2)
map_image (Image1Rect, Map1, Image1Mapped)
map_image (Image2Rect, Map2, Image2Mapped)
binocular_disparity_mg (Image1Mapped, Image2Mapped, Disparity, \
Score, 1, 30, 8, 0, 'false', \
'default_parameters', 'fast_accurate')
points_foerstner points_foerstner PointsFoerstner points_foerstner PointsFoerstner PointsFoerstner ,
points_harris points_harris PointsHarris points_harris PointsHarris PointsHarris
vector_to_fundamental_matrix_distortion vector_to_fundamental_matrix_distortion VectorToFundamentalMatrixDistortion vector_to_fundamental_matrix_distortion VectorToFundamentalMatrixDistortion VectorToFundamentalMatrixDistortion ,
change_radial_distortion_cam_par change_radial_distortion_cam_par ChangeRadialDistortionCamPar change_radial_distortion_cam_par ChangeRadialDistortionCamPar ChangeRadialDistortionCamPar ,
change_radial_distortion_image change_radial_distortion_image ChangeRadialDistortionImage change_radial_distortion_image ChangeRadialDistortionImage ChangeRadialDistortionImage ,
change_radial_distortion_points change_radial_distortion_points ChangeRadialDistortionPoints change_radial_distortion_points ChangeRadialDistortionPoints ChangeRadialDistortionPoints ,
gen_binocular_proj_rectification gen_binocular_proj_rectification GenBinocularProjRectification gen_binocular_proj_rectification GenBinocularProjRectification GenBinocularProjRectification
match_fundamental_matrix_ransac match_fundamental_matrix_ransac MatchFundamentalMatrixRansac match_fundamental_matrix_ransac MatchFundamentalMatrixRansac MatchFundamentalMatrixRansac ,
match_essential_matrix_ransac match_essential_matrix_ransac MatchEssentialMatrixRansac match_essential_matrix_ransac MatchEssentialMatrixRansac MatchEssentialMatrixRansac ,
match_rel_pose_ransac match_rel_pose_ransac MatchRelPoseRansac match_rel_pose_ransac MatchRelPoseRansac MatchRelPoseRansac ,
proj_match_points_ransac proj_match_points_ransac ProjMatchPointsRansac proj_match_points_ransac ProjMatchPointsRansac ProjMatchPointsRansac ,
calibrate_cameras calibrate_cameras CalibrateCameras calibrate_cameras CalibrateCameras CalibrateCameras
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