如何将输入安排为 Matlab 的 Extrinsics() 函数的对象?

How to arrange input as an object for Extrinsics() function of matlab?

我正在尝试使用 matlab 的外部函数来计算平移向量。作为一项要求,我想提供输入相机参数。即相机矩阵,畸变矩阵。但是当我给输入即 camParam 一个 3x3 cameraMatrix 时,它给我错误。

camParam = [994.735326361544, 0, 624.663440953582;
            0, 998.166467837258, 364.087425569226;
            0, 0, 1]; 

    [rotationMatrix,translationVector] = extrinsics(left_right_eye_points,(face.model)',camParam);

我收到以下错误:

Error using extrinsics
Expected cameraParams to be one of these types:
cameraParameters
Instead its type was double.
Error in extrinsics>checkInputs (line 140)
validateattributes(cameraParams, {'cameraParameters'}, {}, ...
Error in extrinsics (line 91)
checkInputs(imagePoints, worldPoints, cameraParams);
Error in Simple_conversion_from_World_to_Camera_to_image (line 37)
[rotationMatrix,translationVector] = extrinsics(left_right_eye_points,(face.model)',camParam)

我的问题是:

1) 我应该如何安排我的 camParam,以便函数 extrinsics 可以接受它。

2)另外还需要失真系数吗?如果是,那么如何安排呢。

您必须按照错误消息的指示进行操作。创建一个 cameraParameters 对象并使用它。可能你想要 cp=cameraParameters('IntrinsicMatrix',camParam)

cameraParams 对象还允许您设置失真,文档解释了详细信息。