我想使用opencv从像素/屏幕坐标中找到相机坐标。
假设我的相机已校准,并且我得到了固有参数(具有焦距和主点的矩阵)
和外部参数(旋转和平移矩阵)使用opencv。然后this website 3d
用opencv重建说:
s * [q 1]^{Transpose} = [K] * [([R] * P) + T]
[q]
是2d像素坐标,s = 1
,K
是(3x3
)固有矩阵,R
是(3x3
)旋转矩阵,P
是3x1
)在世界坐标中,而T
是(3x1
)转换矩阵。[R]^{-1} * ( [ [K]^{-1} * [q 1 ]^{Transpose} ] - [T] ) = [P]
[U] = ([R] * [P]) + [T]
[U]
是(3x1
)。所以现在像素坐标中的[q]
将是[U]
。[R]
)或内在矩阵([K]
)始终是可逆的吗?或者是最佳答案
我懒得为您检查一下(实际上,您应该对其进行测试,如果有疑问,请来这里寻求帮助)。
但是,您可以使用这个漂亮的代码段:并不是您想要的那样,但是基本原理是正确的:
Opencv virtually camera rotating/translating for bird's eye view
https://stackoverflow.com/questions/8498964/