Freigeben über


Intrinsische Kamera

Ein Kameratreiber (oder alternativ über DMFT) kann mithilfe von MFStreamExtension_PinholeCameraIntrinsics ein systeminternes Kamera-Attribut an einen Stream-Attributspeicher anfügen oder mit MFSampleExtension_PinholeCameraIntrinsics an einen Medienrahmen-Attributspeicher anfügen. Wenn es an einen Stream-Attributspeicher angefügt ist, ändern sich die Werte der intrinsischen Kamera während des Kamerastreamings nicht. Wenn er an einen Medienframe-Attributspeicher angefügt ist, kann sich der systeminterne Wert für jeden Frame ändern.

Für die beiden oben genannten Attribute muss der Wert eine Struktur vom Typ MFPinholeCameraIntrinsics sein, die eine Liste der intrinsischen Kameramodelle meldet. Jeder Eintrag in dieser Liste hat den Typ MFPinholeCameraIntrinsic_IntrinsicModel, der eine Auflösung (Breite/Höhe), ein Lochmodell und MFCameraIntrinsic_DistortionModel Verzerrungsmodell enthält.

Wenn Sie MFPinholeCameraIntrinsics mit einem Stream-Attributspeicher verwenden, muss diese Liste mindestens ein und möglicherweise viele intrinsische Modelle enthalten. Das System wählt das systeminterne Modell basierend auf dem aktiv gestreamten Frameformat aus, indem die Breite und Höhe der Frames angepasst wird. Wenn eine genaue Übereinstimmung gefunden wird, werden die systeminternen Eigenschaften verwendet. Andernfalls werden stattdessen die ersten systeminternen Elemente mit dem gleichen Seitenverhältnis verwendet, z. B. wenn die Liste zwei Einträge enthält, jeweils 640x480 und 1920x1080. Beim Streaming mit einem Medienformat von 1280 x 720 werden die systeminternen 1080p-Dateien mit ordnungsgemäßer Skalierung verwendet.

Wenn Sie MFPinholeCameraIntrinsics mit einem Medienframe-Attributspeicher verwenden, muss diese Liste genau ein systeminternes Modell mit der gleichen Auflösung wie die Frameauflösung enthalten.