标签: 360-panorama

有什么方法可以判断视频是 360 度还是全景图?

对于我正在处理的项目,我需要自动确定视频是否是 VR (360) 视频,如果是,它是什么格式。有什么办法可以告诉吗?我在考虑元数据,但找不到任何关于此的信息。

virtual-reality 360-panorama 360-virtual-reality

7
推荐指数
1
解决办法
3212
查看次数

OpenCV - 平面全景到立方或等角投影?

我已经陷入这个问题大约2个月了,尝试过每一个相关的SO帖子,博客和教程,我可以在那里找到.请帮忙:

我有一个平面全景图像,我想将其转换为cubeMap或Equirectangular格式.我使用了一些SO帖子来从cubeMap创建equirectangular图像,反之亦然.我可以做到这一点,但这一切都需要以某种形式投影360º的图像.问题是如何从平面全景准备立方体贴图?

我也看过方法对FishEye进行cubeMap/equirectangular投影.但无法找到是否有办法可以从平面图像中创建equirectangular投影.

equirectangular投影:

在此输入图像描述

cubeMap Projection:

在此输入图像描述

我也可以在两者之间进行转换.但我不知道如何创建上述任何一个?openCV实现更可取,但也可以使用OpenGLES代码.谢谢.

c++ opencv opengl-es map-projections 360-panorama

6
推荐指数
0
解决办法
1104
查看次数

使用Javascript Graph API在Facebook上发布equirectangular 360°全景图

我试图代表我的应用程序的用户发布360°照片,但我无法弄清楚如何使其工作.

我加载了Facebook Javascript Graph API,使用"publish_actions"范围记录用户并使用以下代码使用equirectangular投影发布图片:

FB.api(
        "/me/photos",
        "POST",
        {
            "url": "MY_PUBLIC_URL",
            "allow_spherical_photo": true,
            "spherical_metadata": {
                "ProjectionType": "equirectangular",
                "CroppedAreaImageWidthPixels": 240,
                "CroppedAreaImageHeightPixels": 240,
                "FullPanoWidthPixels": 1962,
                "FullPanoHeightPixels": 981,
                "CroppedAreaLeftPixels": 981,
                "CroppedAreaTopPixels": 490
            }
    }, function (response) {
        console.log(response); // I get "{"id":"...", post_id:"..."} so no error
        if (response && !response.error) {
          /* handle the result */
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

它在当前用户的时间轴上正确发布,但它显示为"普通"图片,而不是360°全景图.

有人实施了360°全景发布功能吗?

我的照片应该具有正确的比例(2:1)并且是正确的360°照片.

预先感谢您的帮助.

javascript facebook facebook-graph-api 360-panorama

6
推荐指数
1
解决办法
1229
查看次数

如何在 SceneKit 中使用 360 度图像作为天空盒?

我正在使用 Xcode 8 和 Swift 3 以及 SceneKit

我正在制作一款发生在空中浮岛上的游戏。我希望背景是有云的美丽天空,并且当相机像天空盒一样移动时,我希望它相应地移动。

我可以使用 6 个图像组成的数组环绕来制作天空盒,但我在网上找不到任何好的图像,也找不到任何好的生成器来制作它们。我可以找到像这样的优质 360 度图像。我的问题是:如何使用上面的图像在 SceneKit 中制作天空盒?我很确定这是可能的,因为苹果在他们的网站上有它:

https://developer.apple.com/documentation/scenekit/scnmaterialproperty/1395372-contents

(您必须向下滚动一点才能看到它)

那么有没有办法做到这一点,以及如何做到这一点?谢谢。任何帮助表示赞赏。

xcode ios skybox swift 360-panorama

6
推荐指数
0
解决办法
2316
查看次数

如何在Unity中为桌面VR应用程序逐帧显示360视频?

是否可以通过事件控制360度视频在时间上向前或向后移动(帧+/- 1),例如按下控制器按钮?

这里的想法是从视频中提取环境.视频不应该播放.按下按钮时,我们可以转到下一个/上一个帧.

有关于此的一些文件吗?我只找到了Skybox-PanoramicBeta.shader.

unity-game-engine virtual-reality 360-panorama 360-virtual-reality

6
推荐指数
1
解决办法
257
查看次数

三张js全景查看器多分辨率图片

如何使用多分辨率图像实现三个 js 全景查看器,如 pannellum:https ://pannellum.org/documentation/examples/multiresolution/ 。

当前的代码在这里使用three.js所://codepen.io/w3core/pen/vEVWML)。

  1. 从等距柱状图到全景查看器。
  2. 我遇到了高分辨率图像的问题,需要很长时间才能渲染。
  3. 当我寻求一些解决方案 pannelum 和 Kprano 通过加载多分辨率图像而不是单个图像解决了这个案例。

所以我尝试加载多分辨率图像而不是单个等距柱状图。

我在下面尝试的解决方案:

  1. 将单个等距柱状图图像转换为低分辨率 6 立方体地图图像。

  2. 并像此示例一样渲染这些图像。( https://threejs.org/examples/canvas_geometry_panorama.html )

    var materials = [
        loadTexture('px.jpg'), // right
        loadTexture('nx.jpg'), // left
        loadTexture('py.jpg'), // top
        loadTexture('ny.jpg'), // bottom
        loadTexture('pz.jpg'), // back
        loadTexture('nz.jpg')  // front
    ];
    mesh = new THREE.Mesh(new THREE.BoxGeometry(300, 300, 300, 7, 7, 7), materials);
    mesh.scale.x = -1;
    scene.add(mesh);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果放大任何立方体贴图图像,我需要渲染另一个中等分辨率的图像。

打到这里

如何进行下面的事情

  1. 缩放时如何渲染下一级分辨率的图像。

在下面的示例缩放图像中...

我已将缩放级别设为 0,但无法进行渲染缩放 1、2、3 等。

缩放:0(低分辨率立方体贴图正面图像示例)

在此处输入图片说明

缩放:1(缩放时,需要渲染下一组中等分辨率的瓷砖正面图像,如下所示)

在此处输入图片说明

缩放:3(进一步缩放时,需要渲染下一组高分辨率平铺正面图像,如下所示)在此处输入图片说明

缩放:4(缩放时,需要渲染下一组非常高分辨率的平铺正面图像,如下所示)在此处输入图片说明

javascript three.js 360-panorama

5
推荐指数
1
解决办法
1367
查看次数

基于内部和外部相机参数计算单应矩阵

我愿意对6个鱼眼相机进行360\xc2\xb0全景拼接。

\n

为了找到相机之间的关系,我需要计算单应性矩阵。后者通常是通过查找图像中的特征并进行匹配来计算的。

\n

然而,对于我的相机设置我已经知道

\n
    \n
  • 固有相机矩阵K,我通过相机校准计算得出。
  • \n
  • 相机外参数 R 和 t。相机方向是固定的并且在任何时候都不会改变。摄像机位于已知直径 d 的圆上,每个摄像机相对于圆偏移 60\xc2\xb0 度。
  • \n
\n

因此,我认为我可以手动计算单应性矩阵,我认为这会产生比执行特征匹配更准确的方法。

\n

在文献中,我找到了以下公式来计算将图像 2 与图像 1 相关联的单应性矩阵:

\n
H_2_1 = (K_2) * (R_2)^-1 * R_1 * K_1\n
Run Code Online (Sandbox Code Playgroud)\n

该公式仅考虑相机之间的旋转角度,而不考虑我的情况中存在的平移向量。

\n

如何将每个摄像机的平移 t 插入到 H 的计算中?

\n

我已经尝试在不考虑平移的情况下计算 H,但由于 d>1 米,图像在全景图中没有准确对齐。

\n

编辑:

\n

根据下面弗朗西斯科的回答,我得到了以下问题:

\n
    \n
  • 校准鱼眼镜头后,我得到了一个尺寸为 1024 x 768 的图像的K焦距矩阵。f=620这被认为是大焦距还是小焦距

    \n
  • \n
  • 我的相机位于一个直径为 1 米的圆上。下面的解释让我很清楚,由于相机之间的这种“大”平移,我对距离它们相对较近的物体产生了显着的重影效果。因此,如果Homography模型不能完全代表相机的位置,是否可以使用其他模型(例如Fundamental/Essential Matrix)进行图像拼接?

    \n
  • \n …

computer-vision homography projective-geometry image-stitching 360-panorama

2
推荐指数
1
解决办法
5525
查看次数