360视频:旋转球面投影RSP

article/2025/5/14 12:02:18

旋转球面投影(Rotated sphere projection,RSP)将球体分为两个相同的部分,然后投影到平面上,宽高比3:2。

图1 RSP投影

球面上两部分的分割线类似于图2中网球上的分割线。

图2 网球分割示意图

Frame Packing

如图1所示,进行RSP投影后在2D平面有6个面,面4、0、5由球体的上半部分进行ERP投影后得到,如图3,面3、1、2由球体的下半部分沿Y轴和X轴旋转后再按ERP投影后得到,如图4。面4、0、5的FOV(Field of view)为270x90度,面3、1、2的FOV为90x270度。

图3 虚线为球体上半部分ERP投影后FOV为270x90度的部分

图4 虚线为球体旋转后ERP投影后FOV为90x270度的部分

图5 投影后上下两部分拼接

图5是投影后拼接的结果,各个角的部分与其他面重合,所以用灰色显示表示这些像素无效。

判断一个像素(m,n)是否在面f里的步骤如下:

  • 如果f是0或1,则像素(m,n)标记为在面内。

  • 如果f为2,3,4或5

    • 将(m,n)剪切到16x16的网格中表示为(m0,n0),

    • 给定(m0,n0)和f,进行2D-3D变换和3D-2D变换得到 (m',n')和f',其中2D和3D间的变换后文描述。

    • 如果f'=f,则(m,n)在面f内,否则(m,n)不在面f内。

投影变换

对面0,4,5来说,2D-3D和3D-2D变换和ERP相同,对于面1,2,3则需要在变换前进行旋转:

  • 沿Y轴180度旋转(将后面转到前面)

  • 沿X轴90度旋转(将两极转到赤道)

假设球体上的(X,Y,Z)旋转后坐标为(X',Y',Z'),

X'=-X

Y'=-Z

Z'=-Y

假设2D展开后上下两个部分都是WxH,对于面0,4,5来说,

   

对于3D-2D变换,对于上半部分的(m,n)可由下式求出:

   

对于下半部分的面1,2,3,2D平面上的(m,n)仍由式(5)(6)求得,只不过经纬度由下式求出,

  

感兴趣的请关注微信公众号Video Coding

 


http://chatgpt.dhexx.cn/article/qjBc8tA8.shtml

相关文章

视频防抖技术的实现

1. 介绍 视频防抖是指用于减少摄像机运动对最终视频的影响的一系列方法。摄像机的运动可以是平移(比如沿着x、y、z方向上的运动)或旋转(偏航、俯仰、翻滚)。 对视频防抖的需求在许多领域都有。 这在消费者和专业摄像中是极其重…

音视频基础:视频的编码

本文主要参考《图像通信技术与应用》作者陈柘 陈川 记录了数字图像的模型、图像变换的数学原理、图像编码的基本思想、H.26x等视频标准、以及视频的传输模型等概念,只介绍思想,无数学推导,无代码实践,属于音视频入门知识 视频的编…

视频压缩基本概念

视频压缩基本概念 为什么需要压缩视频 首先回答why这个问题。 假设一个2小时未压缩的高清视频,19201080p的电影,我们来计算一下他的存储容量。先介绍一下帧率(frame rate或者是 FPS)概念,也就是每秒传输图片的帧数,也可以理解为…

视频压缩基本介绍与标准

视频压缩基本介绍与标准 视频压缩又称视频编码,所谓视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。 一般的通用数据压缩方案如下图: 压缩就是一个传播的过程,所以在压缩与解压缩…

vr视频六面体变换

本文会对facebook的开源filter:vf_transform.c 做代码级分析,解释vr视频是如何做六面体转换的。 转换的关键其实就是输入vr视频到六面体的映射(也就是下图中蓝色图像映射到红色图像): 假设每个正方形的像素是512x512个…

学生角度看傅里叶变换,拉普拉斯变换,z变换(一)

学生角度看傅里叶变换,拉普拉斯变换,z变换(一) 学生角度看傅里叶变换,拉普拉斯变换,z变换(一) 离散和连续信号的表示 信号的脉冲表示响应与卷积 傅里叶变换 为什么需要傅里叶变换ejw…

树莓派GPIO引脚介绍

在已经安装好GPIO库的情况下,命令行输出gpio readall即可列出IO引脚的定义和编号,显示如下(替换为图) 编号规则可参考树莓派GPIO控制 Python配置GPIO安装参考: sudo apt-get install python-dev sudo apt-get insta…

树莓派GPIO引脚控制红绿灯与轰鸣器

参考: https://blog.csdn.net/weixin_44415639/article/details/114600919 https://blog.csdn.net/chenbo163/article/details/78716269 https://blog.51cto.com/u_11643026/4291142 这里文章用的编程引脚是物理引擎代号BOARD 1、GPIO控制包安装 参考&#xff1…

树莓派教程 : 树莓派各版本引脚定义

树莓派Zero W/WH(Raspberry Pi Zero W/WH) GPIO针脚定义

树莓派各版本引脚及参数

一、树莓派引脚 图片来源 注:本表格适用于各版本,并且兼容26Pin的树莓派B,树莓派B为26Pin,其引脚对应于上表的前26Pin。 二、树莓派参数 1.树莓派各版本比较: 2.树莓派3B参数 表格来源 名称参数备注SOC博通 BCM28…

树莓派4b 引脚图

树莓派 4B 详细资料

树莓派引脚远程控制

最近和树莓派群里朋友合作想做个开源RPILINK系统满足群里一些朋友的需求,虽然不少地方还不完善至少开了个头,先记录下来功能,以后有空会陆续会完善技术方面记录。 Rpilink系统是一个将树莓派设备连接到一起的数据平台,树莓派之间可以通过用户的配置进行数据交换和命令的执行…

树莓派4B的引脚控制简单demo

淘宝上的店家提供了很多示例程序,这里只拿一种来演示下,借此熟悉下如何用c或者python环境去操作树莓派。前提配置见我的之前的系列博客 树莓派4B基础软硬件环境搭建_jiugeshao的专栏-CSDN博客 树莓派4B上多版本python切换(一)_j…

树莓派的GPIO端口详解

首先上一张端口图 GPIO(GeneralPurposeI/OPorts)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。GPIO是个比较重要的概念,用户可…

树莓派管脚编码c语言,树莓派IO引脚定义 | 北岛夜话

我们使用树莓派的很重要一个原因是想通过它来进行一些智能控制,比如控制舵机、LED灯、继电器或者用来进行串口、SPI通信等,这些都需要通过控制树莓派的输入输出引脚(IO引脚)来实现的。前面的文章我们说过树莓派的输入输出引脚有26针和40针的区别,今天这篇文章我们具体看看它…

树莓派GPIO引脚详解

树莓派的GPIO引脚还是小有点复杂,有些是共用的。需要在启动时切换不同的设备树文件来设置不同的模式。详情参考: UART at Raspberry Pi GPIO PinoutRaspberry Pi UART pinshttps://pinout.xyz/pinout/uart

树莓派引脚编号说明

目前,树莓派引脚编号方式有三种: 1,基于引脚的物理位置进行编号; 2,C语言GPIO库wiringPi约定的编号方式; 3,Python语言GPIO库RPi.GPIO约定的编号方式。 如果我们要基于wiringPi库用C语言对树…

树莓派4b引脚图

感觉树莓派4B的引脚分布排序和树莓派3B的引脚排序差不太多,或者我需要的电源和串口应该是一样的。 转载自:树莓派4b引脚图_0欣欣0的博客-CSDN博客_树莓派4b引脚图

树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:https://blog.csdn.net/qq21497936/article/…