1

我想使用opencv从像素/屏幕坐标中找到相机坐标。

假设我的相机经过校准,我使用 opencv 获得了内在参数(焦距和主点的矩阵)和外在参数(旋转和平移矩阵)。然后这个用opencv进行3d重建的网站说:

s * [q  1]^{Transpose} = [K] * [([R] * P) + T]

其中[q]是 2d 像素坐标,s = 1K( 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]) 是否总是可逆的?或者有时旋转矩阵和/或内在矩阵不能反转?

可以确认一下吗?

4

1 回答 1

0

我懒得给你查了(其实你应该测试一下,如果有问题,来这里寻求帮助)。

但是你可以使用这个漂亮的代码片段:它不是你想要的,但基本原理是正确的:

Opencv虚拟相机旋转/平移鸟瞰图

于 2011-12-14T06:49:34.470 回答