opencv - 是否可以使用此过程将屏幕坐标转换为相机坐标?

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

假设我的相机已校准,并且我得到了固有参数(具有焦距和主点的矩阵)
和外部参数(旋转和平移矩阵)使用opencv。然后this website 3d
用opencv重建说:

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])始终是可逆的吗?或者是
有时旋转矩阵和/或内在矩阵无法反转?

是否可以确认这一点?

最佳答案

我懒得为您检查一下(实际上,您应该对其进行测试,如果有疑问,请来这里寻求帮助)。

但是,您可以使用这个漂亮的代码段:并不是您想要的那样,但是基本原理是正确的:

Opencv virtually camera rotating/translating for bird's eye view

https://stackoverflow.com/questions/8498964/

相关文章:

iphone - openCV CvSVM::save为iPhone生成太大的文件

opencv - C++ Eclipse OpenCV : . 生成了 exe 文件和二进制文件,但

opencv - 我可以在POSIT + OpenCV中使用mm吗?

android - Android OpenCV手势识别

windows - OpenCV捕获的视频比实时运行的快吗?

android - 1 channel iplimage -> Android 位图

image-processing - 如何使用openCV库提取视频中的清晰轮廓

opencv - cvBlobsLib 的特征向量和特征值

android - Android:BitmapFactory.decodeFile/OpenCV确

image-processing - 读取 RGBA 图像 OpenCV