three.js - Three.js 中的铅锤相机失真
问题描述
我试图在 Three.js 中复制一个真实世界的相机,我将相机的失真指定为“铅锤”模型的参数。特别是我有P
, K
,R
和在这里D
指定:
如果我对所有内容都理解正确,我想设置 3 来进行从右侧的“X”到左上角的“输入图像”的翻译。我正在考虑的一种方法是制作Camera
我自己的 Three.js,将 设置projectionMatrix
为 ... 一些涉及K
and的东西D
。这有意义吗?K
考虑到并被D
指定为长度分别为 9 和 5 的一维数组,我究竟会将它设置为什么。我有点迷失如何组合所有数字:(
我在这个答案中注意到,将直线渲染为弯曲需要一些复杂的事情,它们会在某些相机失真(如鱼眼镜头)下出现。如果这更复杂,我不需要它来达到我的目的。简单地渲染每个顶点是正确的点就足够了。
解决方案
本文档显示了相机矩阵的逐步推导(Matlab 参考)。
见: http: //www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html
所以,是的。您可以使用此过程计算矩阵,并使用它将真实世界的 3D 点映射到 2D 输出图像。
推荐阅读
- java - (a * b) / c MulDiv 和处理中间乘法的溢出
- android - 如何查看用户提出的无法从我们这边模拟的问题
- spring - Spring 事件发布者和多个监听器
- php - 安装由 adminpanel laravel 创建的 crud 项目时出错
- django - 超级用户创建错误 NOT NULL 约束失败
- stm32 - stm32和外接flash(w25q)连接问题
- nginx - 如何解决 nginx 中的“没有实时上游”错误?
- python - Python/Kivy 立即崩溃
- apache-camel - Apache Camel ActiveMQ 组件是否保证将消息传递给代理?
- javascript - jQuery - 使用 :contains 选择然后更改内容