gpt4 book ai didi

C++ Opencv 不同分辨率相机标定

转载 作者:太空宇宙 更新时间:2023-11-03 22:09:36 24 4
gpt4 key购买 nike

我的相机有不同的分辨率1280*480640*240320*120

我用Opencv3的算法标定了分辨率为1280*480的摄像头,得到了这个分辨率的摄像头矩阵(fx fy cx cy)和畸变矩阵(k1 k2 p1 p2 k3)。

但是现在我想用这些相机矩阵和畸变矩阵来标定分辨率为320*120的相机。我不知道如何将这两个1280*480分辨率的矩阵应用到320*120的分辨率上。PS我没有直接标定320*120分辨率的相机,因为图像太小,Opencv的算法找不到棋盘。

我想知道如果我将分辨率 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

最佳答案

您无需更改失真矩阵。至于相机矩阵(包含 fx, fy, cx, cy 的矩阵),您只需将它们除以 4。通用公式为:

fx' = (dimx' / dimx) * fx 
fy' = (dimy' / dimy) * fy

fx' 是新分辨率的值,fx 是原始分辨率的现有值,dimx' 是沿 x 轴的新分辨率,dimx 是原始分辨率。这同样适用于 fy

cxcy 都是类比计算的,因为这些值都是用像素坐标表示的。

根据 OpenCV docs关于相机矩阵:

if an image from the camera is scaled by a factor, all of these parameters should be scaled (multiplied/divided, respectively) by the same factor.

关于C++ Opencv 不同分辨率相机标定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44888119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com