| Operatoren |
projective_trans_region — Anwenden einer projektiven Transformation auf eine Region.
projective_trans_region(Regions : TransRegions : HomMat2D, Interpolation : )
projective_trans_region wendet die durch die homogene Matrix HomMat2D beschriebene projektive Transformation auf die Regionen in Regions an und liefert die Ergebnisregionen in TransRegions zurück.
Zur Berechnung und Interpretation der Matrix siehe projective_trans_image.
Wird 'clip_region' durch set_system('clip_region', 'true') auf seinen Grundzustand 'true' gesetzt, oder ist die Transformation entartet, erzeugt also unendlich große Regionen, so wird die Ausgaberegion durch das Rechteck mit linker oberer Ecke (0, 0) und rechter unterer Ecke ('width', 'height') beschnitten, wobei 'width' und 'height' Systemvariablen sind (siehe get_system). Falls 'clip_region' auf 'false' gesetzt wird, so wird die Ausgaberegion nur durch die maximale unterstützte Koordinatengröße 'MAX_FORMAT' beschränkt. Dies kann zu sehr speicher- und zeitintensiven Berechnungen führen, ist also mit Vorsicht zu benutzen.
Der Transformation liegt das gleiche Koordinatensystem zugrunde, das auch bei dem Operator affine_trans_pixel verwendet wird. Das bedeutet, dass die Transformation nicht mit der Transformationsmatrix HomMat2D, sondern mit einer modifizierte Version davon durchgeführt wird. Eine Transformation mit projective_trans_region entspricht für jeden Punkt (Row_i, Col_i) der Region der folgenden Kette von Transformationen (Ein- und Ausgabekoordinaten als homogene Vektoren dargestellt):
Dies kann zu unerwarteten Ergebnissen führen, wenn die Transformationsmatrix unter Verwendung von Koordinaten erstellt wurde, die von der Region mit Operatoren wie z.B. area_center abgeleitet wurden. Wenn z.B. eine rotationssymmetrische Region unter Verwendung von hom_mat2d_rotate um ihren mit area_center bestimmten Schwerpunkt rotiert wird, so liegt die transformierte Region nicht auf der Originalregion. Dieser Effekt kann dadurch kompensiert werden, dass vor dem Aufruf von projective_trans_region die Transformationsmatrix HomMat2D durch die beiden folgenden Translationen modifiziert wird:
hom_mat2d_translate(HomMat2D, 0.5, 0.5, HomMat2DTmp) hom_mat2d_translate_local(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted) projective_trans_region(Region, TransRegion, HomMat2DAdapted, 'bilinear')
Eingaberegionen.
Ergebnisregionen.
Homogene projektive Transformationsmatrix.
Interpolationsmethode für die Transformation.
Defaultwert: 'bilinear'
Werteliste: 'bilinear', 'nearest_neighbor'
vector_to_proj_hom_mat2d, hom_vector_to_proj_hom_mat2d, proj_match_points_ransac, proj_match_points_ransac_guided, hom_mat3d_project
projective_trans_image, projective_trans_image_size, projective_trans_contour_xld, projective_trans_point_2d, projective_trans_pixel
Foundation
| Operatoren |