首页 > 解决方案 > Three.js 中的铅锤相机失真

问题描述

我试图在 Three.js 中复制一个真实世界的相机,我将相机的失真指定为“铅锤”模型的参数。特别是我有P, K,R和在这里D指定:

在此处输入图像描述

如果我对所有内容都理解正确,我想设置 3 来进行从右侧的“X”到左上角的“输入图像”的翻译。我正在考虑的一种方法是制作Camera我自己的 Three.js,将 设置projectionMatrix为 ... 一些涉及Kand的东西D。这有意义吗?K考虑到并被D指定为长度分别为 9 和 5 的一维数组,我究竟会将它设置为什么。我有点迷失如何组合所有数字:(

我在这个答案中注意到,将直线渲染为弯曲需要一些复杂的事情,它们会在某些相机失真(如鱼眼镜头)下出现。如果这更复杂,我不需要它来达到我的目的。简单地渲染每个顶点是正确的点就足够了。

标签: three.js

解决方案


本文档显示了相机矩阵的逐步推导(Matlab 参考)。

见: http: //www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html

所以,是的。您可以使用此过程计算矩阵,并使用它将真实世界的 3D 点映射到 2D 输出图像。


推荐阅读