proj_match_points_distortion_ransac_guided T_proj_match_points_distortion_ransac_guided ProjMatchPointsDistortionRansacGuided ProjMatchPointsDistortionRansacGuided proj_match_points_distortion_ransac_guided (Operator)
Name
proj_match_points_distortion_ransac_guided T_proj_match_points_distortion_ransac_guided ProjMatchPointsDistortionRansacGuided ProjMatchPointsDistortionRansacGuided proj_match_points_distortion_ransac_guided — Automatische Bestimmung der projektiven Transformationsmatrix
zwischen zwei Bildern und des radialen Verzeichnungskoeffizienten
durch Zuordnung von Bildpunkten basierend auf bekannten Näherungen
der projektiven Transformationsmatrix und des radialen
Verzeichnungskoeffizienten.
Signatur
proj_match_points_distortion_ransac_guided (Image1 , Image2 : : Rows1 , Cols1 , Rows2 , Cols2 , GrayMatchMethod , MaskSize , HomMat2DGuide , KappaGuide , DistanceTolerance , MatchThreshold , EstimationMethod , DistanceThreshold , RandSeed : HomMat2D , Kappa , Error , Points1 , Points2 )
Herror T_proj_match_points_distortion_ransac_guided (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 HomMat2DGuide , const Htuple KappaGuide , const Htuple DistanceTolerance , const Htuple MatchThreshold , const Htuple EstimationMethod , const Htuple DistanceThreshold , const Htuple RandSeed , Htuple* HomMat2D , Htuple* Kappa , Htuple* Error , Htuple* Points1 , Htuple* Points2 )
void ProjMatchPointsDistortionRansacGuided (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& HomMat2DGuide , const HTuple& KappaGuide , const HTuple& DistanceTolerance , const HTuple& MatchThreshold , const HTuple& EstimationMethod , const HTuple& DistanceThreshold , const HTuple& RandSeed , HTuple* HomMat2D , HTuple* Kappa , HTuple* Error , HTuple* Points1 , HTuple* Points2 )
HHomMat2D HImage ::ProjMatchPointsDistortionRansacGuided (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HString& GrayMatchMethod , Hlong MaskSize , const HHomMat2D& HomMat2DGuide , double KappaGuide , double DistanceTolerance , const HTuple& MatchThreshold , const HString& EstimationMethod , const HTuple& DistanceThreshold , Hlong RandSeed , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HImage ::ProjMatchPointsDistortionRansacGuided (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HString& GrayMatchMethod , Hlong MaskSize , const HHomMat2D& HomMat2DGuide , double KappaGuide , double DistanceTolerance , Hlong MatchThreshold , const HString& EstimationMethod , double DistanceThreshold , Hlong RandSeed , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HImage ::ProjMatchPointsDistortionRansacGuided (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const char* GrayMatchMethod , Hlong MaskSize , const HHomMat2D& HomMat2DGuide , double KappaGuide , double DistanceTolerance , Hlong MatchThreshold , const char* EstimationMethod , double DistanceThreshold , Hlong RandSeed , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HImage ::ProjMatchPointsDistortionRansacGuided (const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const wchar_t* GrayMatchMethod , Hlong MaskSize , const HHomMat2D& HomMat2DGuide , double KappaGuide , double DistanceTolerance , Hlong MatchThreshold , const wchar_t* EstimationMethod , double DistanceThreshold , Hlong RandSeed , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
(Nur Windows)
HHomMat2D HHomMat2D ::ProjMatchPointsDistortionRansacGuided (const HImage& Image1 , const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HString& GrayMatchMethod , Hlong MaskSize , double KappaGuide , double DistanceTolerance , const HTuple& MatchThreshold , const HString& EstimationMethod , const HTuple& DistanceThreshold , Hlong RandSeed , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HHomMat2D ::ProjMatchPointsDistortionRansacGuided (const HImage& Image1 , const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const HString& GrayMatchMethod , Hlong MaskSize , double KappaGuide , double DistanceTolerance , Hlong MatchThreshold , const HString& EstimationMethod , double DistanceThreshold , Hlong RandSeed , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HHomMat2D ::ProjMatchPointsDistortionRansacGuided (const HImage& Image1 , const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const char* GrayMatchMethod , Hlong MaskSize , double KappaGuide , double DistanceTolerance , Hlong MatchThreshold , const char* EstimationMethod , double DistanceThreshold , Hlong RandSeed , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
HHomMat2D HHomMat2D ::ProjMatchPointsDistortionRansacGuided (const HImage& Image1 , const HImage& Image2 , const HTuple& Rows1 , const HTuple& Cols1 , const HTuple& Rows2 , const HTuple& Cols2 , const wchar_t* GrayMatchMethod , Hlong MaskSize , double KappaGuide , double DistanceTolerance , Hlong MatchThreshold , const wchar_t* EstimationMethod , double DistanceThreshold , Hlong RandSeed , double* Kappa , double* Error , HTuple* Points1 , HTuple* Points2 ) const
(Nur Windows)
static void HOperatorSet .ProjMatchPointsDistortionRansacGuided (HObject image1 , HObject image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , HTuple grayMatchMethod , HTuple maskSize , HTuple homMat2DGuide , HTuple kappaGuide , HTuple distanceTolerance , HTuple matchThreshold , HTuple estimationMethod , HTuple distanceThreshold , HTuple randSeed , out HTuple homMat2D , out HTuple kappa , out HTuple error , out HTuple points1 , out HTuple points2 )
HHomMat2D HImage .ProjMatchPointsDistortionRansacGuided (HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , string grayMatchMethod , int maskSize , HHomMat2D homMat2DGuide , double kappaGuide , double distanceTolerance , HTuple matchThreshold , string estimationMethod , HTuple distanceThreshold , int randSeed , out double kappa , out double error , out HTuple points1 , out HTuple points2 )
HHomMat2D HImage .ProjMatchPointsDistortionRansacGuided (HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , string grayMatchMethod , int maskSize , HHomMat2D homMat2DGuide , double kappaGuide , double distanceTolerance , int matchThreshold , string estimationMethod , double distanceThreshold , int randSeed , out double kappa , out double error , out HTuple points1 , out HTuple points2 )
HHomMat2D HHomMat2D .ProjMatchPointsDistortionRansacGuided (HImage image1 , HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , string grayMatchMethod , int maskSize , double kappaGuide , double distanceTolerance , HTuple matchThreshold , string estimationMethod , HTuple distanceThreshold , int randSeed , out double kappa , out double error , out HTuple points1 , out HTuple points2 )
HHomMat2D HHomMat2D .ProjMatchPointsDistortionRansacGuided (HImage image1 , HImage image2 , HTuple rows1 , HTuple cols1 , HTuple rows2 , HTuple cols2 , string grayMatchMethod , int maskSize , double kappaGuide , double distanceTolerance , int matchThreshold , string estimationMethod , double distanceThreshold , int randSeed , out double kappa , out double error , out HTuple points1 , out HTuple points2 )
def proj_match_points_distortion_ransac_guided (image_1 : HObject, image_2 : HObject, rows_1 : Sequence[Union[float, int]], cols_1 : Sequence[Union[float, int]], rows_2 : Sequence[Union[float, int]], cols_2 : Sequence[Union[float, int]], gray_match_method : str, mask_size : int, hom_mat_2dguide : Sequence[float], kappa_guide : float, distance_tolerance : float, match_threshold : Union[int, float], estimation_method : str, distance_threshold : Union[float, int], rand_seed : int) -> Tuple[Sequence[float], float, float, Sequence[int], Sequence[int]]
Beschreibung
Ausgehend von einer Menge charakteristischer Punkte
(Rows1 Rows1 Rows1 Rows1 rows1 rows_1 ,Cols1 Cols1 Cols1 Cols1 cols1 cols_1 ) und
(Rows2 Rows2 Rows2 Rows2 rows2 rows_2 ,Cols2 Cols2 Cols2 Cols2 cols2 cols_2 ) in den beiden Eingabebildern
Image1 Image1 Image1 Image1 image1 image_1 und Image2 Image2 Image2 Image2 image2 image_2 , welche dieselbe Größe besitzen
müssen, und bekannten Näherungen HomMat2DGuide HomMat2DGuide HomMat2DGuide HomMat2DGuide homMat2DGuide hom_mat_2dguide und
KappaGuide KappaGuide KappaGuide KappaGuide kappaGuide kappa_guide für die Transformation von Image1 Image1 Image1 Image1 image1 image_1 zu
Image2 Image2 Image2 Image2 image2 image_2 bestimmt
proj_match_points_distortion_ransac_guided proj_match_points_distortion_ransac_guided ProjMatchPointsDistortionRansacGuided ProjMatchPointsDistortionRansacGuided ProjMatchPointsDistortionRansacGuided proj_match_points_distortion_ransac_guided automatisch die
Korrespondenz der Punkte, die homogene projektive
Transformationsmatrix HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d und den radialen
Verzeichnungskoeffizienten Kappa Kappa Kappa Kappa kappa kappa
, welche die
folgende Gleichung am besten erfüllen:
Hierbei sind
Bildpunkte, die durch Entzerrung der Eingabebildpunkte mit
dem Divisionsmodell entstehen (siehe Kalibrierung ):
Hierbei bezeichnen
die verzerrten
Bildpunkte relativ zum Bildmittelpunkt und w und h die Breite
und Höhe der Eingabebilder.
proj_match_points_distortion_ransac_guided proj_match_points_distortion_ransac_guided ProjMatchPointsDistortionRansacGuided ProjMatchPointsDistortionRansacGuided ProjMatchPointsDistortionRansacGuided proj_match_points_distortion_ransac_guided 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 ChangeRadialDistortionCamPar ChangeRadialDistortionCamPar change_radial_distortion_cam_par ,
change_radial_distortion_image change_radial_distortion_image ChangeRadialDistortionImage ChangeRadialDistortionImage ChangeRadialDistortionImage change_radial_distortion_image und
change_radial_distortion_points change_radial_distortion_points ChangeRadialDistortionPoints ChangeRadialDistortionPoints ChangeRadialDistortionPoints change_radial_distortion_points ):
Die Näherung HomMat2DGuide HomMat2DGuide HomMat2DGuide HomMat2DGuide homMat2DGuide hom_mat_2dguide kann z.B. mit
proj_match_points_distortion_ransac proj_match_points_distortion_ransac ProjMatchPointsDistortionRansac ProjMatchPointsDistortionRansac ProjMatchPointsDistortionRansac proj_match_points_distortion_ransac auf niedriger
aufgelösten Versionen von Image1 Image1 Image1 Image1 image1 image_1 zu Image2 Image2 Image2 Image2 image2 image_2
bestimmt werden. Siehe dazu das Beispiel unten.
Das Matchingverfahren beruht auf charakteristischen Punkten, welche
mit Punktoperatoren, wie z.B. points_foerstner points_foerstner PointsFoerstner PointsFoerstner PointsFoerstner points_foerstner oder
points_harris points_harris PointsHarris PointsHarris PointsHarris points_harris , extrahiert wurden. Die Bestimmung 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 die projektive Transformationsmatrix und den radialen
Verzeichnungskoeffizienten zu finden, welche die Anzahl der
korrespondierenden Punktpaare unter Erfüllung der obigen Bedingung
maximieren.
Die Größe der Grauwertfenster, die für das Matching verwendet
werden, beträgt MaskSize MaskSize MaskSize MaskSize maskSize mask_size x MaskSize MaskSize MaskSize MaskSize maskSize mask_size . Es
können drei Metriken für die Korrelation gewählt werden. Hat
GrayMatchMethod GrayMatchMethod GrayMatchMethod GrayMatchMethod grayMatchMethod gray_match_method 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 BinocularDisparity BinocularDisparity binocular_disparity ).
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 match_threshold ('ssd' "ssd" "ssd" "ssd" "ssd" "ssd" ,
'sad' "sad" "sad" "sad" "sad" "sad" ) bzw. über demselben ('ncc' "ncc" "ncc" "ncc" "ncc" "ncc" ) liegt.
Zur Performanzsteigerung wird der Suchbereich für die
Match-Kandidaten basierend auf der Näherung der Transformation
eingeschränkt, die durch HomMat2DGuide HomMat2DGuide HomMat2DGuide HomMat2DGuide homMat2DGuide hom_mat_2dguide und
KappaGuide KappaGuide KappaGuide KappaGuide kappaGuide kappa_guide bestimmt wird. Nur Punkte, die innerhalb eines
Abstandes von DistanceTolerance DistanceTolerance DistanceTolerance DistanceTolerance distanceTolerance distance_tolerance um die Transformation eines
Punktes aus Image1 Image1 Image1 Image1 image1 image_1 mittelsHomMat2DGuide HomMat2DGuide HomMat2DGuide HomMat2DGuide homMat2DGuide hom_mat_2dguide und
KappaGuide KappaGuide KappaGuide KappaGuide kappaGuide kappa_guide in Image2 Image2 Image2 Image2 image2 image_2 liegen, werden für das
Matching in Betracht gezogen.
Ist das initiale Punktmatching bestimmt, wird es anschließend durch
einen randomisierten Auswahlalgorithmus (RANSAC) zur Bestimmung der
projektiven Transformationsmatrix HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d 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 distance_threshold zu möglichst vielen Punktpaaren
konsistent sind. DistanceThreshold DistanceThreshold DistanceThreshold DistanceThreshold distanceThreshold distance_threshold sollte also kleiner als
DistanceTolerance DistanceTolerance DistanceTolerance DistanceTolerance distanceTolerance distance_tolerance sein.
Der Parameter EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod estimation_method gibt an, welches Verfahren
zur Berechnung der projektiven Transformationsmatrix angewendet
wird. Falls EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod estimation_method auf 'linear' "linear" "linear" "linear" "linear" "linear" gesetzt
wird, wird ein lineares Verfahren verwendet, das einen algebraischen
Fehler basierend auf den obigen Gleichungen minimiert. Dieses
Verfahren ist sehr schnell und liefert genaue Ergebnisse für
geringes bis mittleres Rauschen der Punktkoordinaten und für die
meisten Verzeichnungen (außer kleinen Verzeichnungen). Für
EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod estimation_method = 'gold_standard' "gold_standard" "gold_standard" "gold_standard" "gold_standard" "gold_standard" wird eine
mathematisch optimale, dafür aber langsamere, Optimierung
durchführt, die den geometrischen Reprojektionsfehler minimiert. Im
allgemeinen sollte EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod estimation_method =
'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 transformierten Punkten, gemessen in Pixeln.
Punktpaare, welche die Konsistenzbedingungen erfüllen, werden als
Korrespondenzen akzeptiert. Points1 Points1 Points1 Points1 points1 points_1 enthält die Indizes
der zugeordneten Eingabepunkte im ersten Bild, Points2 Points2 Points2 Points2 points2 points_2 die
Indizes der dazu korrespondierenden Punkte im zweiten Bild.
Der Parameter RandSeed RandSeed RandSeed RandSeed randSeed rand_seed kann benutzt werden, um das
randomisierte Verhalten des RANSAC-Verfahrens zu kontrollieren und
somit reproduzierbare Ergebnisse zu erhalten. Wird
RandSeed RandSeed RandSeed RandSeed randSeed rand_seed 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 rand_seed initialisiert wird. Ist RandSeed RandSeed RandSeed RandSeed randSeed rand_seed =
0 , so wird der Zufallsgenerator mit der aktuellen Zeit
initialisiert. Daher sind in diesem Fall die Ergebnisse unter
Umständen nicht reproduzierbar.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Wird ohne Parallelisierung verarbeitet.
Parameter
Image1 Image1 Image1 Image1 image1 image_1 (input_object) singlechannelimage → object HImage HObject HImage Hobject (byte / uint2)
Eingabebild 1.
Image2 Image2 Image2 Image2 image2 image_2 (input_object) singlechannelimage → object HImage HObject HImage Hobject (byte / uint2)
Eingabebild 2.
Rows1 Rows1 Rows1 Rows1 rows1 rows_1 (input_control) point.y-array → HTuple Sequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte in Bild 1 (Zeilenkoordinate).
Restriktion: length(Rows1) >= 5
Cols1 Cols1 Cols1 Cols1 cols1 cols_1 (input_control) point.x-array → HTuple Sequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte in Bild 1 (Spaltenkoordinate).
Restriktion: length(Cols1) == length(Rows1)
Rows2 Rows2 Rows2 Rows2 rows2 rows_2 (input_control) point.y-array → HTuple Sequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte in Bild 2 (Zeilenkoordinate).
Restriktion: length(Rows2) >= 5
Cols2 Cols2 Cols2 Cols2 cols2 cols_2 (input_control) point.x-array → HTuple Sequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte in Bild 2 (Spaltenkoordinate).
Restriktion: length(Cols2) == length(Rows2)
GrayMatchMethod GrayMatchMethod GrayMatchMethod GrayMatchMethod grayMatchMethod gray_match_method (input_control) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
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"
MaskSize MaskSize MaskSize MaskSize maskSize mask_size (input_control) integer → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Größe der Grauwertmasken.
Defaultwert: 10
Typischer Wertebereich: 3
≤
MaskSize
MaskSize
MaskSize
MaskSize
maskSize
mask_size
≤
15
Restriktion: MaskSize >= 1
HomMat2DGuide HomMat2DGuide HomMat2DGuide HomMat2DGuide homMat2DGuide hom_mat_2dguide (input_control) hom_mat2d → HHomMat2D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Näherung der projektiven Transformationsmatrix
zwischen den zwei Bildern.
KappaGuide KappaGuide KappaGuide KappaGuide kappaGuide kappa_guide (input_control) real → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Näherung des radialen Verzeichnungskoeffizienten
in den zwei Bildern.
DistanceTolerance DistanceTolerance DistanceTolerance DistanceTolerance distanceTolerance distance_tolerance (input_control) real → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Toleranz des Suchfensters für das Punktmatching.
Defaultwert: 20.0
Wertevorschläge: 0.2, 0.5, 1.0, 2.0, 3.0, 5.0, 10.0, 20.0, 50.0
Restriktion: DistanceTolerance > 0
MatchThreshold MatchThreshold MatchThreshold MatchThreshold matchThreshold match_threshold (input_control) number → HTuple Union[int, float] HTuple Htuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Schwellenwert für Grauwertkorrespondenzen.
Defaultwert: 0.7
Wertevorschläge: 0.9, 0.7, 0.5, 10, 20, 50, 100
EstimationMethod EstimationMethod EstimationMethod EstimationMethod estimationMethod estimation_method (input_control) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Schätzalgorithmus für die Transformationsmatrix.
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"
DistanceThreshold DistanceThreshold DistanceThreshold DistanceThreshold distanceThreshold distance_threshold (input_control) number → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Schwelle für die Konsistenzüberprüfung.
Defaultwert: 1
Restriktion: DistanceThreshold > 0
RandSeed RandSeed RandSeed RandSeed randSeed rand_seed (input_control) integer → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Startwert für den Zufallszahlengenerator.
Defaultwert: 0
HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d (output_control) hom_mat2d → HHomMat2D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Berechnete homogene projektive Transformationsmatrix.
Kappa Kappa Kappa Kappa kappa kappa (output_control) real → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Berechneter Verzeichnungskoeffizient.
Error Error Error Error error error (output_control) real → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Mittlerer quadratischer Transformationsfehler.
Points1 Points1 Points1 Points1 points1 points_1 (output_control) integer-array → HTuple Sequence[int] HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Indizes der zugeordneten Eingabepunkte aus Bild 1.
Points2 Points2 Points2 Points2 points2 points_2 (output_control) integer-array → HTuple Sequence[int] HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Indizes der zugeordneten Eingabepunkte aus Bild 2.
Beispiel (HDevelop)
Factor := 0.5
zoom_image_factor (Image1, Image1Zoomed, Factor, Factor, 'constant')
zoom_image_factor (Image2, Image2Zoomed, Factor, Factor, 'constant')
points_foerstner (Image1Zoomed, 1, 2, 3, 200, 0.3, 'gauss', 'true', \
Rows1, Cols1, _, _, _, _, _, _, _, _)
points_foerstner (Image2Zoomed, 1, 2, 3, 200, 0.3, 'gauss', 'true', \
Rows2, Cols2, _, _, _, _, _, _, _, _)
get_image_size (Image1Zoomed, Width, Height)
proj_match_points_distortion_ransac (Image1Zoomed, Image2Zoomed, \
Rows1, Cols1, Rows2, Cols2, \
'ncc', 10, 0, 0, Height, Width, \
0, 0.5, 'gold_standard', 2, 0, \
HomMat2D, Kappa, Error, \
Points1, Points2)
hom_mat2d_scale_local (HomMat2D, Factor, Factor, HomMat2DGuide)
hom_mat2d_scale (HomMat2DGuide, 1.0/Factor, 1.0/Factor, 0, 0, \
HomMat2DGuide)
KappaGuide := Kappa*Factor*Factor
points_foerstner (Image1, 1, 2, 3, 200, 0.3, 'gauss', 'true', \
Rows1, Cols1, _, _, _, _, _, _, _, _)
points_foerstner (Image2, 1, 2, 3, 200, 0.3, 'gauss', 'true', \
Rows2, Cols2, _, _, _, _, _, _, _, _)
proj_match_points_distortion_ransac_guided (Image1, Image2, \
Rows1, Cols1, \
Rows2, Cols2, \
'ncc', 10, \
HomMat2DGuide, \
KappaGuide, 5, 0.5, \
'gold_standard', 2, 0, \
HomMat2D, Kappa, \
Error, Points1, Points2)
get_image_size (Image1, Width, Height)
CamParDist := ['area_scan_division',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)
concat_obj (Image1Rect, Image2Rect, ImagesRect)
gen_projective_mosaic (ImagesRect, MosaicImage, 1, 1, 2, HomMat2D, \
'default', 'false', MosaicMatrices2D)
Vorgänger
points_foerstner points_foerstner PointsFoerstner PointsFoerstner PointsFoerstner points_foerstner ,
points_harris points_harris PointsHarris PointsHarris PointsHarris points_harris
Nachfolger
vector_to_proj_hom_mat2d_distortion vector_to_proj_hom_mat2d_distortion VectorToProjHomMat2dDistortion VectorToProjHomMat2dDistortion VectorToProjHomMat2dDistortion vector_to_proj_hom_mat2d_distortion ,
change_radial_distortion_cam_par change_radial_distortion_cam_par ChangeRadialDistortionCamPar ChangeRadialDistortionCamPar ChangeRadialDistortionCamPar change_radial_distortion_cam_par ,
change_radial_distortion_image change_radial_distortion_image ChangeRadialDistortionImage ChangeRadialDistortionImage ChangeRadialDistortionImage change_radial_distortion_image ,
change_radial_distortion_points change_radial_distortion_points ChangeRadialDistortionPoints ChangeRadialDistortionPoints ChangeRadialDistortionPoints change_radial_distortion_points ,
gen_binocular_proj_rectification gen_binocular_proj_rectification GenBinocularProjRectification GenBinocularProjRectification GenBinocularProjRectification gen_binocular_proj_rectification ,
projective_trans_image projective_trans_image ProjectiveTransImage ProjectiveTransImage ProjectiveTransImage projective_trans_image ,
projective_trans_image_size projective_trans_image_size ProjectiveTransImageSize ProjectiveTransImageSize ProjectiveTransImageSize projective_trans_image_size ,
projective_trans_region projective_trans_region ProjectiveTransRegion ProjectiveTransRegion ProjectiveTransRegion projective_trans_region ,
projective_trans_contour_xld projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld ProjectiveTransContourXld projective_trans_contour_xld ,
projective_trans_point_2d projective_trans_point_2d ProjectiveTransPoint2d ProjectiveTransPoint2d ProjectiveTransPoint2d projective_trans_point_2d ,
projective_trans_pixel projective_trans_pixel ProjectiveTransPixel ProjectiveTransPixel ProjectiveTransPixel projective_trans_pixel
Alternativen
proj_match_points_distortion_ransac proj_match_points_distortion_ransac ProjMatchPointsDistortionRansac ProjMatchPointsDistortionRansac ProjMatchPointsDistortionRansac proj_match_points_distortion_ransac
Siehe auch
proj_match_points_ransac proj_match_points_ransac ProjMatchPointsRansac ProjMatchPointsRansac ProjMatchPointsRansac proj_match_points_ransac ,
proj_match_points_ransac_guided proj_match_points_ransac_guided ProjMatchPointsRansacGuided ProjMatchPointsRansacGuided ProjMatchPointsRansacGuided proj_match_points_ransac_guided ,
hom_vector_to_proj_hom_mat2d hom_vector_to_proj_hom_mat2d HomVectorToProjHomMat2d HomVectorToProjHomMat2d HomVectorToProjHomMat2d hom_vector_to_proj_hom_mat2d ,
vector_to_proj_hom_mat2d vector_to_proj_hom_mat2d VectorToProjHomMat2d VectorToProjHomMat2d VectorToProjHomMat2d vector_to_proj_hom_mat2d
Literatur
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.
Modul
Matching