180度vr直播用,鱼眼视频展开到全景

您所在的位置:网站首页 六面体全景图怎么画 180度vr直播用,鱼眼视频展开到全景

180度vr直播用,鱼眼视频展开到全景

#180度vr直播用,鱼眼视频展开到全景| 来源: 网络整理| 查看: 265

对于180度vr的直播,一般来说低成本的做法是采用鱼眼镜头拍摄整个180度的视频。

鱼眼镜头成像过程:

不同的鱼眼镜头有不同的成像方式,我们采用的也是比较常用的等距投影模型。

对于输入来说,由于镜头的成像范围,我们的输入是一部分的鱼眼图。输出我们希望是一个全景图,该图可以在带上vr头盔后以180度范围观看全景。也就是鱼眼到全景的转换。

关于鱼眼展开到全景图的算法,采用了经纬度展开的方法。其实主要工作就是找到输出图像上各个像素到输入图像上的映射位置,而这个位置可以通过等距投影模型推算。

鱼眼镜头采样范围一般不止180度,大约183度,但是我们没有找到合适的方法来检查鱼眼镜头的实际成像范围,所以目前按180度进行映射。实际效果看不出什么问题。

首先看我们的输入图像,是不完全的鱼眼图(上下有缺失):

第一步,找到鱼眼成像中,圆的半径:

1.对图像从左边往右边平移一条直线,计算这条直线上的max和min的差值,如果超过阈值,则判断为圆的左边界。同理可以找到圆的右边界。

2.对图像从左到右平移一条带有角度的直线,找到这个角度上,圆的直径。

3.根据上面两个值可以找到圆心和半径,圆心就是两条直径的交点。

第二步,就是最主要的映射了。

首先,明确我们的输入和输出。先说输出,对于一个180度全景图,相当于一个半球,它的宽高比应该是1:1。找一个书本上的球,如下图,我们直观理解:这个半球在三维坐标系中,水平范围是180度[0,180°],垂直范围也是180度[-90°,90°],水平垂直的范围相同。将水平垂直坐标归一化到[0,1],假设输出图像的宽高为out_len,我们要找的映射关系则是以 (1/ out_len) 为间隔,将整个球面投影到一个正方形上。这其实就是目前常见vr视频的物理意义。

所以,我们要做的映射过程如下:

// out yuv height/width is out_len * out_len float x, y; for (x=0.0;x


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3