Z = -1时图像平面的逆相机本征矩阵

时间:2019-12-28 18:59:01

标签: matrix camera hololens inverse

之前曾问过类似的问题,很遗憾,我无法评论Samgaks的回答,所以我在此发表了新文章。这是旧问题的链接:

How to calculate ray in real-world coordinate system from image using projection matrix?

我的目标是将图像坐标映射到世界坐标。实际上,我正在尝试使用HoloLens相机的“相机固有参数”执行此操作。

当然,此贴图只会给我连接相机光学中心和所有点的光线,该光线可以位于该光线上。对于从图像坐标到世界坐标的映射,我们可以使用逆相机矩阵:

K ^ -1 = [1 / fx 0 -cx / fx; 0 1 / fy -cy / fy; 0 0 1]

Pcam = K ^ -1 * Ppix;

Pcam_x = P_pix_x / fx-cx / fx;

Pcam_y = P_pix_y / fy-cy / fy;

Pcam_z = 1

Orientation of Camera Coordinate System and Image Plane

在这种特定情况下,图像平面可能位于Z = -1(但是,我对此不太确定)。第HoloLens CameraProjectionTransform页的“ 应用程序指定的坐标系统的像素” 部分介绍了如何将像素坐标转换为世界坐标。据我了解,K ^ -1中的两个符号被翻转。我们计算坐标如下:

Pcam_x =(Ppix_x / fx)-(cx *(-1)/ fx)= P_pix_x / fx + cx / fx;

Pcam_y =(Ppix_y / fy)-(cy *(-1)/ fy)= P_pix_y / fy + cy / fy;

Pcam_z = -1

Pcam =(Pcam_x,Pcam_y,-1)


CameraOpticalCentre =(0,0,0)


Ray = Pcam-CameraOpticalCentre


对于图像平面处于负Z坐标的情况,我不了解如何创建“相机固有”。我想对为什么要进行符号翻转(P_pix_x / fx + cx / fx而不是P_pix_x / fx-cx / fx)进行数学解释或直观理解。

编辑:我在另一篇文章中读到,如果相机面向负z方向,则必须否定相机矩阵的干渴栏。这将解释符号翻转。但是,为什么我们需要更改第三列的符号。我想对此有一个直观的了解。 这里是帖子Negation of third column

的链接

非常感谢, 丽莎

0 个答案:

没有答案