我的相机有不同的分辨率1280*480 640*240 320*120
利用Opencv3算法标定了分辨率为1280*480的摄像机,得到了摄像机矩阵(fx Cy)和畸变矩阵(k1 k2 p1 p2 K3)。
但是现在我想用这些相机矩阵和失真矩阵来校准相机的分辨率为320*120。我不知道如何将第1280*480号决议的这两个矩阵应用到320*120的决议中。由于图像太小,Opencv算法找不到棋盘,所以我还没有直接校准320*120分辨率的相机。
我想知道如果我改变分辨率1280*480到320*120,相机矩阵(fx fy cx Cy)和失真矩阵(k1 k2 p1 p2 k3)将如何改变。
opencv的算法如下:calibration.html
发布于 2017-07-03 14:43:43
你不需要改变扭曲矩阵。至于相机矩阵(包含fx, fy, cx, cy
的矩阵),您只需将它们除以4。一般的公式是:
fx' = (dimx' / dimx) * fx
fy' = (dimy' / dimy) * fy
fx'
是新分辨率的值,fx
是原始分辨率的值,dimx'
是x轴上的新分辨率,dimx
是原始分辨率。这同样适用于fy
。
cx
和cy
是类比计算的,因为所有这些值都是用像素坐标表示的。
根据关于相机矩阵的OpenCV文档:
如果相机的图像被因子缩放,那么所有这些参数都应该被缩放(分别乘以/除以)到相同的因子。
https://stackoverflow.com/questions/44888119
复制相似问题