我正在尝试使用matlab的extrinsics函数来计算平移向量。作为要求,我想给出输入相机参数。即相机矩阵、畸变矩阵。但是当我给输入(即 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 对象还允许您设置失真,文档解释了详细信息。
关于matlab - 如何将输入安排为matlab的Extrinsics()函数的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930677/