使用全景创建 360° x 180° 球面投影

Posted

技术标签:

【中文标题】使用全景创建 360° x 180° 球面投影【英文标题】:Create 360° x 180° spherical projection using panorama 【发布时间】:2016-03-31 09:06:44 【问题描述】:

我使用 OpenCV Stitcher 例程创建了 360° 全景图。全景图本身没问题,但是当我将它投影到球体上(使用 360° 投影软件)时,全景图沿 x 轴的起点和终点不对齐。使用 5 个输入图像创建全景图的代码是;

using namespace cv;  
using namespace std;

void main()  

    Mat rImg;
    vector< Mat > vImg;

    vImg.push_back( imread("Img1.jpg") );   
    vImg.push_back( imread("Img2.jpg") );
    vImg.push_back( imread("Img3.jpg") );
    vImg.push_back( imread("Img4.jpg") );
    vImg.push_back( imread("Img5.jpg") );

    Stitcher stitcher = Stitcher::createDefault(0);
    stitcher.stitch(vImg, rImg);

    imshow("Stitching Result", rImg);
    waitKey(0);
  

我找不到任何 API(在拼接类中)用于扭曲/对齐全景图的开始和结束。这是一个类似的question。解决这个问题的算法或 openCV API 会很有帮助。谢谢。

【问题讨论】:

【参考方案1】:

由于我使用的是广角图像,OpenCV 无法将广角非线性图像拼接成 360 度全景图。

如果是直线图像,OpenCV 的拼接程序可以正常工作。

【讨论】:

以上是关于使用全景创建 360° x 180° 球面投影的主要内容,如果未能解决你的问题,请参考以下文章

360视频:分段球面投影SSP

360视频:分段球面投影SSP

360视频:旋转球面投影RSP

全景图转小行星视角投影原理详解

柱面模型解析

360视频:正八面体投影OHP