如何将鱼眼图像转换为5或6面的立方体图像

5
我想将一个二维鱼眼图像展开成一个三维立方体。因此,我认为有必要将鱼眼图像展开成六个立方体图像,并将这六个立方体图像重新映射到三维立方体上。现在,我对第一步感到困惑,无法在互联网上找到一些具体的论文和代码实现,希望有人能给我一些想法。 我能得到的结果如下: 立方体图像 cubic image 鱼眼图像 enter image description here

你无法从一张图像中获取整个立方体。看一下左侧的cubemap部分。你在鱼眼图像中看到了楼梯90度转弯吗? - Colonel Thirty Two
补光通常是通过从多个角度拍摄镜面球来提取的。 - ratchet freak
谢谢。但我只是用这两张图片作为示例。[链接]http://neuron.tuke.sk/pluchta/Pocitacove%20Videnie/Prednasky/HTML/Offaxis%20fisheye%20projection.htm 这个链接展示了基本理论,但我还没有弄清楚如何实现它。 - user2968731
1个回答

0

无法将任意鱼眼图像展开为立方体贴图。但是,如果您说的是球形环境贴图(SEM),而不是鱼眼图像,则可以在一定程度上完成。

一段时间以前,我成功编写了一款软件,可以将SEM贴图转换为立方体贴图,反之亦然。因此,我可以证明这是可能的。但需要注意的是,在靠近SEM边缘的区域会出现大量扭曲,这些区域被映射到立方体贴图背面中心处。请阅读文章,您将在其中找到实现所需的所有信息。

第9页有一个将方向向量映射到SEM UV坐标的函数。在第21页,您将找到类似的函数,但用于立方体贴图。因此,您的策略应该是为立方体贴图的每个纹素找到一个方向向量,然后为该方向向量计算SEM坐标并从SEM贴图中采样一个纹素。

顺便说一句,我从你评论中添加的链接里注意到你在谈论半球环境贴图。所有的逻辑都是一样的,只是从三维方向向量到SEM坐标的映射不同。很容易可以修改第9页的公式以适应半球形式。但你需要知道,对于半球形式的SEM,你会得到一个半立方体贴图,也就是没有后面和被剪裁了的侧面。


谢谢,兄弟。实际上,我想从一个二维鱼眼图像创建一个半立方体,并且在这个链接中[link]http://www.realitypixels.com/turk/quicktimevr/defish/defish.html,它是以半立方体模式实现的。 - user2968731

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接