gen_bundle_adjusted_mosaicT_gen_bundle_adjusted_mosaicGenBundleAdjustedMosaicGenBundleAdjustedMosaicgen_bundle_adjusted_mosaic (Operator)
Name
gen_bundle_adjusted_mosaicT_gen_bundle_adjusted_mosaicGenBundleAdjustedMosaicGenBundleAdjustedMosaicgen_bundle_adjusted_mosaic — Kombinieren mehrerer Bilder zu einem Mosaikbild.
Signatur
void GenBundleAdjustedMosaic(const HObject& Images, HObject* MosaicImage, const HTuple& HomMatrices2D, const HTuple& StackingOrder, const HTuple& TransformDomain, HTuple* TransMat2D)
HImage HImage::GenBundleAdjustedMosaic(const HHomMat2DArray& HomMatrices2D, const HTuple& StackingOrder, const HString& TransformDomain, HHomMat2D* TransMat2D) const
HImage HImage::GenBundleAdjustedMosaic(const HHomMat2DArray& HomMatrices2D, const HString& StackingOrder, const HString& TransformDomain, HHomMat2D* TransMat2D) const
HImage HImage::GenBundleAdjustedMosaic(const HHomMat2DArray& HomMatrices2D, const char* StackingOrder, const char* TransformDomain, HHomMat2D* TransMat2D) const
HImage HImage::GenBundleAdjustedMosaic(const HHomMat2DArray& HomMatrices2D, const wchar_t* StackingOrder, const wchar_t* TransformDomain, HHomMat2D* TransMat2D) const
(Nur Windows)
static void HOperatorSet.GenBundleAdjustedMosaic(HObject images, out HObject mosaicImage, HTuple homMatrices2D, HTuple stackingOrder, HTuple transformDomain, out HTuple transMat2D)
HImage HImage.GenBundleAdjustedMosaic(HHomMat2D[] homMatrices2D, HTuple stackingOrder, string transformDomain, out HHomMat2D transMat2D)
HImage HImage.GenBundleAdjustedMosaic(HHomMat2D[] homMatrices2D, string stackingOrder, string transformDomain, out HHomMat2D transMat2D)
Beschreibung
gen_bundle_adjusted_mosaicgen_bundle_adjusted_mosaicGenBundleAdjustedMosaicGenBundleAdjustedMosaicGenBundleAdjustedMosaicgen_bundle_adjusted_mosaic setzt die Eingabebilder, welche
im Objekt ImagesImagesImagesImagesimagesimages enthalten sind, zu einem Mosaikbild
MosaicImageMosaicImageMosaicImageMosaicImagemosaicImagemosaic_image zusammen. Die Relativpositionen der Bilder
zueinander werden dabei durch 3x3 projektive
Transformationsmatrizen beschrieben. Das Array
HomMatrices2DHomMatrices2DHomMatrices2DHomMatrices2DhomMatrices2Dhom_matrices_2d besteht aus einer Aufeinanderfolge solcher
linearisierter Matrizen. Die Transformationsmatrizen können mit
bundle_adjust_mosaicbundle_adjust_mosaicBundleAdjustMosaicBundleAdjustMosaicBundleAdjustMosaicbundle_adjust_mosaic berechnet werden.
Der Bildausschnitt von MosaicImageMosaicImageMosaicImageMosaicImagemosaicImagemosaic_image und seine Größe werden
so gewählt, dass alle Ausgangsbilder gerade ganz sichtbar sind.
Die Reihenfolge, in der die Bilder dem Mosaik hinzugefügt werden,
wird durch StackingOrderStackingOrderStackingOrderStackingOrderstackingOrderstacking_order bestimmt. Das erste Element
dieses Arrays bildet das unterste Bild des Mosaiks, während das
letzte ganz oben auf dem Mosaik erscheint. Wird statt einem Array
von ganzen Zahlen der Wert 'default'"default""default""default""default""default" angegeben, so wird die
kanonische Ordnung (Bilder in der Reihenfolge in ImagesImagesImagesImagesimagesimages)
verwendet.
Mit TransformDomainTransformDomainTransformDomainTransformDomaintransformDomaintransform_domain kann festgelegt werden, ob auch die
Definitionsbereiche von ImagesImagesImagesImagesimagesimages transformiert werden. Da
die Transformation der Definitionsbereiche Zeit kostet, kann dieser
Parameter dazu verwendet werden, festzulegen, ob dies erwünscht
ist. Wenn TransformDomainTransformDomainTransformDomainTransformDomaintransformDomaintransform_domain auf 'false'"false""false""false""false""false" gesetzt
wird, wird der Definitionsbereich der Eingabebilder ignoriert.
Somit werden die kompletten Bilder transformiert.
Als Ausgabe gibt der Parameter TransMat2DTransMat2DTransMat2DTransMat2DtransMat2Dtrans_mat_2d eine projektive
3x3 Transformationsmatrix, die die Translation beschreibt,
die notwendig war, um alle Bilder vollständig in das Ausgabebild abzubilden.
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
ImagesImagesImagesImagesimagesimages (input_object) (multichannel-)image-array → objectHImageHObjectHImageHobject (byte / uint2 / real)
Eingabebilder.
MosaicImageMosaicImageMosaicImageMosaicImagemosaicImagemosaic_image (output_object) (multichannel-)image → objectHImageHObjectHImageHobject * (byte / uint2 / real)
Ergebnisbild.
HomMatrices2DHomMatrices2DHomMatrices2DHomMatrices2DhomMatrices2Dhom_matrices_2d (input_control) hom_mat2d-array → HHomMat2D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Array von 3x3 projektiven
Transformationsmatrizen.
StackingOrderStackingOrderStackingOrderStackingOrderstackingOrderstacking_order (input_control) string(-array) → HTupleMaybeSequence[Union[str, int]]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Reihenfolge der Bilder im Mosaik.
Defaultwert:
'default'
"default"
"default"
"default"
"default"
"default"
Wertevorschläge: 'default'"default""default""default""default""default"
TransformDomainTransformDomainTransformDomainTransformDomaintransformDomaintransform_domain (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Sollen die Regionen der Eingabebilder auch
transformiert werden?
Defaultwert:
'false'
"false"
"false"
"false"
"false"
"false"
Werteliste: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true"
TransMat2DTransMat2DTransMat2DTransMat2DtransMat2Dtrans_mat_2d (output_control) hom_mat2d → HHomMat2D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
3x3 projektive Transformationsmatrix,
die die Translation beschreibt, die notwendig war, um
alle Bilder vollständig in das Ausgabebild abzubilden.
Vorgänger
bundle_adjust_mosaicbundle_adjust_mosaicBundleAdjustMosaicBundleAdjustMosaicBundleAdjustMosaicbundle_adjust_mosaic
Alternativen
gen_projective_mosaicgen_projective_mosaicGenProjectiveMosaicGenProjectiveMosaicGenProjectiveMosaicgen_projective_mosaic
Siehe auch
projective_trans_imageprojective_trans_imageProjectiveTransImageProjectiveTransImageProjectiveTransImageprojective_trans_image,
projective_trans_image_sizeprojective_trans_image_sizeProjectiveTransImageSizeProjectiveTransImageSizeProjectiveTransImageSizeprojective_trans_image_size,
projective_trans_regionprojective_trans_regionProjectiveTransRegionProjectiveTransRegionProjectiveTransRegionprojective_trans_region,
projective_trans_contour_xldprojective_trans_contour_xldProjectiveTransContourXldProjectiveTransContourXldProjectiveTransContourXldprojective_trans_contour_xld,
projective_trans_point_2dprojective_trans_point_2dProjectiveTransPoint2dProjectiveTransPoint2dProjectiveTransPoint2dprojective_trans_point_2d,
projective_trans_pixelprojective_trans_pixelProjectiveTransPixelProjectiveTransPixelProjectiveTransPixelprojective_trans_pixel
Literatur
Richard Hartley, Andrew Zisserman: „Multiple View Geometry in
Computer Vision“; Cambridge University Press, Cambridge; 2000.
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