相机内参数

相机驱动程序(或者通过 DMFT)可以使用 MFStreamExtension_PinholeCameraIntrinsics将相机内参属性附加到流属性存储,或者使用 MFSampleExtension_PinholeCameraIntrinsics附加到媒体帧属性存储。 如果它附加到流属性存储,则相机内部函数的值不会在相机流式传输期间更改。 如果它附加到媒体帧属性存储中,那么每个帧的内在属性值可能会发生变化。

对于上述两个属性,该值必须是 MFPinholeCameraIntrinsics 类型的结构,它报告相机内部模型的列表。 此列表中的每个条目都有类型 MFPinholeCameraIntrinsic_IntrinsicModel,其中包含分辨率(宽度/高度)、针孔模型和 MFCameraIntrinsic_DistortionModel 失真模型。

MFPinholeCameraIntrinsics 与流属性存储配合使用时,此列表必须至少包含一个,并且可能包含许多内部模型。 系统将根据正在流式传输的帧格式选择内参模型,通过匹配帧的宽度和高度。 如果找到完全匹配项,将使用内建函数。 否则,将改用具有相同纵横比的第一个内部函数,例如,当列表分别包含两个条目(640x480 和 1920x1080 时)。 如果使用 1280x720 媒体格式进行流式传输,则将通过适当的缩放使用 1080p 内在参数。

MFPinholeCameraIntrinsics 与媒体帧属性存储配合使用时,此列表必须包含与帧分辨率相同的内部函数模型。