Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 现实世界的单位似乎是在OpenCV中缩放的_Android_C++_Opencv_Camera_Camera Calibration - Fatal编程技术网

Android 现实世界的单位似乎是在OpenCV中缩放的

Android 现实世界的单位似乎是在OpenCV中缩放的,android,c++,opencv,camera,camera-calibration,Android,C++,Opencv,Camera,Camera Calibration,我正在尝试设置立体声校正。我只使用了一个绕着物体旋转一小步的相机。但我很困惑。我试图捕捉的对象大小约为3-4厘米。旋转半径约为6厘米。但当我校正时,我得到了有限的xyz矩阵值,每个矩阵的长度都是从相机得到的,大约300-2000个单位。为什么?如何获得第二个摄像机的位置/旋转,即摄像机在第一个参考帧中的第二个位置 org.opencv.calib3d.Calib3d.stereoRectify(mCameraMatrix, mDistortionCoefficients, mCameraMat

我正在尝试设置立体声校正。我只使用了一个绕着物体旋转一小步的相机。但我很困惑。我试图捕捉的对象大小约为3-4厘米。旋转半径约为6厘米。但当我校正时,我得到了有限的xyz矩阵值,每个矩阵的长度都是从相机得到的,大约300-2000个单位。为什么?如何获得第二个摄像机的位置/旋转,即摄像机在第一个参考帧中的第二个位置

org.opencv.calib3d.Calib3d.stereoRectify(mCameraMatrix, mDistortionCoefficients, 
mCameraMatrix, mDistortionCoefficients, dispFloat.size(), R, T, R1, R2, P1, P2, Q);
org.opencv.calib3d.Calib3d.reprojectImageTo3D(dispFloat,xyz,Q);
矩阵值为伪代码:

Input:
mCameraMatrix:
|1076.080810546875f,0.0f,639.5f|
        |0.0f,1076.080810546875f, 359.5f|
        |0.0f,0.0f,1.0f,|
mDistortionCoefficients:
| 0.11665083467960358f,-0.15972141921520233f,0.0f,0.0f,-0.29710251092910767f|

R:
|[0.965926,0,0.258819]|
|[0,1,0]|
|[-0.258819,0,0.965926]|

 T:
|[1.55291,0,0.204445]|

output:
R1:
|0.9965080795455151,        -0.0733390286815368,        0.039912833431844846|
|0.08349638947769386,       0.8751762387100398,     -0.47654475565421633|
|1.8566063818213976E-5,     0.4782132767598534,     0.8782437370035183|
R2:
| 1.0,      0,      0|
|0,     0.8784559480840216,     0.4778233431675381|
|0,     -0.47782334316753805,       0.8784559480840215|
P1:
|538.0404052734375,     0.0,        756.766210841568,       0.0|
|0.0,       538.0404052734375,      428.56917572021484,     0.0|
|0.0,       0.0,        1.0,        0.0|
P2:
|538.0404052734375,     0.0,        756.766210841568,       |-281.3598668991448
|0.0,       538.0404052734375,      428.56917572021484,     0.0|
|0.0,       0.0,        1.0,        0.0|
Q:
|1.0,       0.0,        0.0,        -756.766210841568|
| 0.0,      1.0,        0.0,        -428.56917572021484|
|0.0,       0.0,        0.0,        538.0404052734375|
|0.0,       0.0,        1.9122855409449757,     -0.0|

据我所知,mCameraMatrix[0][0]和mCameraMatrix[1][1]产生的巨大值约为1000。如何重新计算到实际尺寸?如何在第一个位置的参考帧中获得的第二个摄影机位置?

如何计算摄影机矩阵?afaik自动方法在比例方面有些模糊。我使用的是OpenCV项目的一个例子,这张图片:@Micka我直接使用这个项目: