问题标签 [360-panorama]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
math - 查找拍摄照片球的位置
我有一个有四个角落(c1、c2、c3、c4)的房间,每个角落都有坐标。
用户在这个房间里拍摄了一张全景照片——一张 360 度的照片。(我们没有光球位置的坐标。)然后他们通过点击图像来识别房间的角落。这给了我们四个角度(a1、a2、a3、a4)。
从这些数据中,我想找到最有可能拍摄光球的位置,作为 xy 坐标。最好的方法是什么?
(免责声明:我是一个称职的程序员,但不是一个伟大的数学家,所以如果我需要跟进任何特定的理解点,请原谅。谢谢!)
编辑1:我一直在努力让@meowgoesthedog 真正有用的解决方案发挥作用。这里有一些示例数据(在 Ruby 中,但在任何其他语言中几乎相同):
但是,结果不是我所期望的:在这种情况下,x 是 77.29614012577807,y 是 551.2264007863547。这两个都在放置相机的房间的边界框之外(大约 x 62-70,y 566-574)。
计算从 x,y 到角 c1 c2 c3 c4 的角度,这应该导致(大致)a1 a2 a3 a4,得出非常不同的结果:
有什么明显的你可以看出我做错了吗?再次感谢你!
javascript - 杏仁糖 + ReactJS?
有人将Marzipano 360 全景查看器与 ReactJS 应用程序结合使用吗?
有没有人对如何做到这一点有任何想法?
我的一个想法是可能将 React 虚拟 dom 的 Marzipano 传递ref
给原始 DOM 元素,但是我认为 Marzipano 可能会在该元素中添加和删除其他 DOM 元素,所以我认为这可能与 React 的 DOM 管理冲突并导致问题.
另一个想法是在根 ReactDOM 元素之外document.getElementById
的元素中渲染 Marzipano,然后使用常规 old来访问它,并在需要全景图可见时使用 CSS 将 Marzipano 元素覆盖在 React 应用程序上方。
两者都很老套,远非理想,所以如果有人有更好的想法,请发表。
(注意这是一个个人的副项目,所以更多的hacky想法是完全可以的)
javascript - 结合 ReactJS + Marzipano 时出现白屏?
我正在做一个项目,我试图将ReactJS + Marzipano结合起来。
我正处于使用创建 React 项目的阶段,create-react-app
通过 npm 安装 Marzipano,并从此处的 Marzipano 示例中复制/稍微修改了一些样板代码,以使其适合 React 应用程序。
注意我还在我的项目中安装了glslify作为依赖项,因为当我尝试在没有它的情况下导入 Marzipano 时,出现以下错误:
找不到模块:无法解析“glslify”
另请注意, glslify 是 Marzipano 的开发依赖项,但不是生产依赖项。我想通过将它安装为依赖项可能是我出错的地方,但是没有它就会抛出上述错误,所以不知道该怎么做。
无论如何,现在发生的事情是我的浏览器在控制台中呈现一个没有错误的白屏,但是当您单击并拖动光标时,它会变成一只闭合的手,并且div
我通过 React 的ref
系统附加 Marzipano 的那个已经被修改了,所以 Marzipano 是肯定在做某事。
下面是我的 App.js 文件(其他一切都是全新create-react-app
安装):
ios - 如何使用物镜 c 将全景图像转换为立方体贴图六面图像?
这是输入图像
转换为六个不同的面孔 cub-map 图像
javascript - Three.js:在 6 Cube Panorama 中将图像添加到纹理底部作为热点
我正在使用这个全景图作为我项目的基础。现在我想在一个选定纹理的底部添加一个小图像(圆圈),就好像这是全景楼层上的一个热点,它将响应用户点击。请看下图,地板上有 2 个圆圈:
我尝试使用以下代码将图像添加到全景图中的 6 个纹理之一:
虽然它似乎实际加载了图像,但圆圈与上图中的样子相去甚远。它非常宽,尽管它的大小为 256 像素并且位于相机周围 - 您可以在非常顶部、底部、侧面看到它,但在您面前却不是一个小圆圈。我玩弄了这些设置,但效果不佳:
我需要帮助将图像定位在相机前任何选定的一侧(或角度)并将其固定在地板上,因此拖动相机将调整此图像的外观(基于角度的倾斜效果)。
更新:我创建了这个 Plunker,但现在根本看不到图像。 http://plnkr.co/edit/KS6dVMn5AIEaXr143Jv3?p=preview
opencv - 如果相机经过平移,如何从单应性中获取焦距
OpenCV 的图像拼接基于相机仅围绕其中心旋转的假设。在此条件下,两幅图像之间的变换可以用一个单应性来表示。焦距可以从单应性中获得。圆柱投影和球面投影都需要参数焦距。
对于手机用户来说,条件很难保证。对于 360 度全景,相机的平移是必要的。在此情况下,假设场景是平面的,单应性可以描述变换。如何从单应性中获得焦距?
android - ViroCore:java.lang.NoClassDefFoundError:解析失败:Lcom/google/vr/ndk/base/GvrLayout;
我已经下载了最新版本的 ViroCore lib (virocore-release-v_1_7_2.aar),然后我在 build.gradle 文件中添加了下面的依赖项
然后写信给我下面的 ViroActivity 代码:
}
但是当运行应用程序时,我总是看到下一个异常:
任何人都知道如何解决这个异常?
c++ - 来自 3 个旋转矩阵而不是 2 个的 Eigen slerp(估计)旋转矩阵
我正在用 C++ 编写全景拼接器,当我无法获得足够的特征来匹配时,我使用 slerp(球面线性插值)和四元数来估计来自相邻图像的旋转矩阵(使用 Eigen 库)。当假设只有一个图像无法连接到其他图像时,我可以做出一个合格的猜测,即一个图像应该在多行中的其他两个图像之间。它对此工作有点好,但我想通过使用 slerp (或其他东西)从更多相邻图像进行估计来改进它。
有谁知道这种方法吗?它不需要使用 Eigen 库。
但是想通过使用 1,3 和 5(甚至 4 和 5,如果更好的话)做这样的事情来改进
编辑 1:从@nico-schertler 的评论中,我知道了如何在 4 和 6 之间获得 5 的 slerp 分数?然后我会使用这个分数作为我在 1 到 3 之间的 2 的 slerp 输入,目前为 0.5
c# - 尝试使用 Equirectangular Projection 将 2D 坐标转换为 3D 坐标。但是失败了。我究竟做错了什么?
目前,我正在 Unity 中制作 360 度视频应用程序。我通过使用等距矩形投影的Unity Skybox 全景着色器成功制作了要渲染的视频。现在我正在尝试通过给定的一些 2D 点在视频上设置一些按钮。2D 点系统有点棘手,并且与笛卡尔系统不同(我的老板要求它......)。x 轴的范围是从-90(顶部)到 90(底部),并用作垂直轴。y轴的范围是-180到180,用作横轴。现在关于计算 3D 坐标的话题,我阅读了wiki 页面等角投影并看到方程。我假设 φ1 和 λ0 为零,因为没有旋转?所以λ(经度)和φ(纬度)在计算中只是y(横坐标)和-x(纵坐标)。由于经度和纬度也只是球坐标中的 θ 和 φ,因此我使用这个 C# 程序计算坐标:
程序将计算按钮的两个二维坐标(左上角和右下角)。然后在 3D 位置上生成两个球体。但是,计算的 3D 坐标不在正确的位置上。我做错什么了吗?
PS:我发现了另一个方程,它说它是一个逆映射方程。我试过了,但仍然有错误的位置。方程式如下所示:
android-sdk-tools - 如何使用相机(android SDK)在 360/3D 视图中捕获对象
大家好,
我需要帮助以使用 android SDK 在 360 中将对象捕获为 SBS(并排),但我还没有在 android 中找到任何 SDK。但无论如何,某些应用程序在 Playstore 中是可用的。人们正在使用。有人可以帮我吗.!!! 提前感谢。