我的照相机具有不同的分辨率 1280 * 480 640 * 240 320 * 120C中的照相机具有不同的分辨率的++ opencv的校准
我已经使用Opencv3的算法,以将相机的分辨率为1280校准* 480,我得到了这个分辨率的相机矩阵(fx fy cx cy)和失真矩阵(k1 k2 p1 p2 k3)。
但现在我想用这些相机矩阵和失真矩阵,以将相机的320 * 120分辨率进行校准。我不知道如何将这两个分辨率为1280 * 480的矩阵应用到320 * 120的分辨率。 PS直接因为图像太小和OpenCV的算法无法找到棋盘我没有校准,320 * 120分辨率的摄像头。
我想知道如果我将分辨率1280 * 480更改为320 * 120,相机矩阵(fx fy cx cy)和失真矩阵(k1 k2 p1 p2 k3)将如何改变。
的OpenCV算法是以下之一: http://docs.opencv.org/3.0-beta/doc/tutorials/calib3d/camera_calibration/camera_calibration.html
请您附上:1)1280x480的校准参数2)1280x480的未畸变图像3)320x120的同一场景的未平息图像。 –
[这似乎相关(http://ksimek.github.io/2013/08/13/intrinsic/)(我只注意到他们甚至讨论在评论这个问题)。我没有完全证实这一点,但在我看来,它应该线性缩放,所以将fx,fy,cx和cy划分为4(因为每个维度现在是1/4的比例原本的)。 –
这将需要一些更多的工作来写一个足够好的答案,但我的思路如下:假设相机箱的2x2和4x4,以获得较低的分辨率,视场保持不变,和(虚拟)像素变为大。 'cx'和'cy'是中心点的坐标 - 适用线性缩放。 | 'fx'和'fy'是以像素为单位的焦距 - 让我们坚持'fx',因为同样的原则适用于两者。与实际焦距的关系为Fx = fx *(W/w),其中W是以实际单位表示的传感器宽度,w是以像素为单位的传感器宽度。 ...(续) –