Partilhar via


Parâmetros intrínsecos da câmara

Um driver de câmera (ou, alternativamente, por meio de DMFT) pode anexar um atributo intrínseco da câmera a um repositório de atributos de fluxo usando MFStreamExtension_PinholeCameraIntrinsics ou anexar a um repositório de atributos de quadro de mídia usando MFSampleExtension_PinholeCameraIntrinsics. Se ele estiver conectado a um armazenamento de atributos de fluxo, os valores dos intrínsecos da câmera não mudam durante o streaming da câmera. Se ele estiver anexado a um repositório de atributos de quadro de mídia, o valor intrínseco poderá mudar para cada quadro.

Para os dois atributos acima, o valor deve ser uma estrutura do tipo MFPinholeCameraIntrinsics, que relata uma lista de modelos intrínsecos de câmera. Cada entrada nesta lista tem o tipo MFPinholeCameraIntrinsic_IntrinsicModel, contendo uma resolução (largura/altura), modelo de pinhole e modelo de distorção MFCameraIntrinsic_DistortionModel.

Ao usar MFPinholeCameraIntrinsics com um repositório de atributos de fluxo, essa lista deve conter pelo menos um e, possivelmente, muitos modelos intrínsecos. O sistema escolherá o modelo intrínseco com base no formato de quadro de streaming ativo, combinando a largura e a altura dos quadros. Se for encontrada uma correspondência exata, serão utilizados os intrínsecos. Caso contrário, os primeiros intrínsecos com a mesma proporção serão usados, por exemplo, quando a lista contiver duas entradas, 640x480 e 1920x1080, respectivamente. Se o streaming for feito com um formato de mídia de 1280x720, os intrínsecos de 1080p serão usados com dimensionamento adequado.

Ao usar MFPinholeCameraIntrinsics com um armazenamento de atributos de quadro de mídia, essa lista deve conter exatamente um modelo intrínseco com a mesma resolução que a resolução de quadro.