1. 简介
大家都知道VR,能够看到360度全景图像,即每帧图像记录了360度视角的成像。而工业界是怎样拍摄这样的图像的呢?目前博主了解的主要有两种做法:
- A.使用多个正常摄像头,每个摄像头拍摄固定角度的图像,然后再拼接
- B.使用两个视角(FOV)>=180度的鱼眼摄像头,再拼接如下图
我们将该任务明确输入输出:
- 输入:给定两张鱼眼图像拍摄的图像
- 输出:一张拼接好的矩形映射全景图(后续你可以根据这张全景图去做各种趣味剪辑)

2.我的解决方案
2.1 算法模块拆解
我先google网上的做法:发现类似的功能: https://moonagic.com/dualfisheye-to-equirectangular/
但是效果不是特别好。结合自己的经验,我将pipeline分为了三部分:
2.1.1 鱼眼相机的畸变矫正
目的: 将鱼眼图像展开为矩形图需要进行图像校正或投影变换。鱼眼图像通常采用一种特殊的透视投影,因此需要将其转换为常规的等距或直角投影以获得矩形图像。这个过程通常涉及到计算每个像素在新图像中的位置,然后将像素从鱼眼图像复制到新图像中的对应位置。
方法: 我们的方法分为两步。第一步: 我们将2维成像的鱼眼原始图像投影在3D球面上。第二步:我们采用球面透射投影, 我们首先定义了球面上的点的极坐标,然后计算了这些点的笛卡尔坐并使用球面透射投影的数学公式计算了投影点的坐标

本文介绍了如何通过使用两个鱼眼摄像头的图像,通过畸变矫正、特征点检测与匹配以及图像拼接技术,生成无缝的全景图。作者提供了自定义的算法流程和Python实现,包括环境搭建和代码示例,强调了在不考虑光照补偿的情况下算法的竞争力。
最低0.47元/天 解锁文章
6501





