我想使用opencv从像素/屏幕坐标中找到相机坐标。
假设我的相机经过校准,我使用 opencv 获得了内在参数(焦距和主点的矩阵)和外在参数(旋转和平移矩阵)。然后这个用opencv进行3d重建的网站说:
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]
) 是否总是可逆的?或者有时旋转矩阵和/或内在矩阵不能反转?
可以确认一下吗?