关于坐标系变换,请参照以下内容。
3358 blog.csdn.net/Wang xiaokun 671903/article/details/37966891
opencv全景视频拼接demo stitching_detailed使用warp,主要制作用于融合多幅图像的表面,默认为球面投影,其原理分析如下:
直觉上可以分为三个步骤:
1 .矩形-曲面矩形铺在球面上(像素坐标系-世界坐标系)。 此时,该矩形看起来已经不是矩形,成为4条边有圆角的形状。
2 .曲面-矩形
该形状从延伸成矩形(求出由各弧形边缘最外缘坐标、或者曲面的各弧形边缘的切线构成的平面矩形);
3 .扭曲转换
通过逆变换(世界坐标系-像素坐标系)使该矩形成为扭曲的平面。
每个步骤的实现:
1 .前向转换,三维重建: spherical projector :3360 map forward
1 )二维旋转三维-原图mask矩形轮廓的像素坐标乘以r (旋转矩阵)和k (内参)逆矩阵,得到空间三维坐标;
2 )将三维坐标(x、y、z )转换为球面极坐标(其值为与球面坐标仰角和张角相对应的弧度),球的半径为焦距
2 .得到生成曲面的外周矩形轮廓、曲面-矩形,具有拉伸性; rotationwarperbasep :3360 detectresultroibyborder3.逆转换: spherical projector 3360: map backward
1 )生成的新矩形逐像素地转换为空间的三维坐标(x,y,z )作为球面坐标;
2 )三维旋转二维-空间三维坐标乘以r和k矩阵,得到像素坐标。
4 .经过以上步骤,获得分别沿x、y轴变换的两个映射矩阵;
5 .对原画和这两个矩阵进行remap操作,得到投影的图像。