我愿意执行一个360°全景缝合6个鱼眼相机。
为了找出相机之间的关系,我需要计算出单形矩阵。后者通常是通过在图像中找到特征并进行匹配来计算的。
然而,对于我的相机设置,我已经知道
通过摄像机calibration.
因此,我认为我可以手工计算出“单字矩阵”,我认为这将导致比执行特征匹配更精确的方法。
在文献中,我找到了以下公式来计算与图像2和图像1相关的同形矩阵:
H_2_1 = (K_2) * (R_2)^-1 * R_1 * K_1这个公式只考虑相机之间的旋转角度,而不考虑在我的情况下存在的平移矢量。
在计算H?时如何插入每个摄像机的平移t?
我已经尝试了计算H没有考虑平移,但作为d>1米,图像不是准确地对齐全景图片。
编辑:
根据Francesco以下的回答,我提出了以下问题:
f=620的矩阵K,用于1024x768大小的图像。这是否被认为是一个大的或小的焦点length?
发布于 2020-08-04 15:55:30
你不能“插入”翻译:它的存在,连同一个非平凡的旋转,数学上意味着图像之间的关系不是一个同形。
然而,如果所拍摄的场景离摄像机“足够远”,也就是说,如果摄像机之间的平移相对于场景物体与摄像机的距离很小,并且摄像机的焦距足够小,那么您可以使用由纯旋转引起的同形作为近似。
你的方程式错了。正确的公式如下:
在齐次coordinates
p_1 = (x, y, 1)中的一个像素,将其投影成3D空间中的射线:P_1 = inv(K_1) * p_1P_2 = R_2_1 * P1p_2 = K_2 * P_2p_2 = [K_2 * R_2_1 * inv(K_1)] * p_1。
乘积H = K2 * R_2_1 * inv(K1)是纯旋转R_2_1诱导的同形。旋转将点从第1帧转换为第2帧。它用一个3x3矩阵表示,其列是在第2帧中分解的帧1的x、y、z轴的分量。如果你的设置给出了所有相机相对于一个普通帧0 (即R_i_0 )的旋转,那么它就是R_2_1 = R_2_0 * R_1_0.transposed。
一般来说,您应该使用上述同形作为初始估计,通过匹配点和优化来改进。这是因为(a)同形模型本身只是一个近似(因为它忽略了平移),和(b)机械装置(甚至校准的)提供的旋转受误差的影响。使用匹配的像素来优化转换将最大限度地减少图像上的误差,而不是抽象的旋转空间。
https://stackoverflow.com/questions/63232589
复制相似问题