首页 > 代码库 > 全景拼接

全景拼接

全景视频拼接关键技术

 

首先介绍一下流程:

    1.选图,两张图的重叠区域不能太小,我个人认为最少不少于15%,这样才能保证有足够的角点匹配。

    2.角点检测。这一步OpenCV提供了很多种方法,譬如Harris角点检测,而监测出的角点用CvSeq存储,这是一个双向链表。

    3.角点提纯。在提纯的时候,需要使用RANSAC提纯。OpenCV自带了一个函数,FindHomography,不但可以提纯,还可以计算出3x3的转换矩阵。这个转换矩阵十分重要。

    4.角点匹配。经过提纯后的角点,则需要匹配。

    5.图像变换。这一步我曾经尝试过很多办法,最后选择了FindHomography输出的变换矩阵,这是一个透视变换矩阵。经过这个透视变换后的图像,可以直接拿来做拼接。

    6.图象拼接。完成上面步骤之后,其实这一步很容易。

    7.球面变换。这一步需要对坐标系进行转换,从平面坐标到球面坐标。

1、原理介绍

        图像拼接(Image Stitching)是一种利用实景图像组成全景空间的技术,它将多幅图像拼接成一幅大尺度图像或360度全景图,图像拼接技术涉及到计算机视觉、计算机图形学、数字图像处理以及一些数学工具等技术。图像拼接其基本步骤主要包括以下几个方面:摄相机的标定、传感器图像畸变校正、图像的投影变换、匹配点选取、全景图像拼接(融合),以及亮度与颜色的均衡处理等,以下对各个步骤进行分析。

相机的运动方式与成像结果之间的关系见下图。

技术分享

 2、一般情况下8参数的透视投影变换最适合描述图像之间的坐标关系,其中8参数的矩阵为[m0,m1,m2;m3,m4,m5; m6,m7,1];各参数对应的相机运动表示如下:

技术分享

3、匹配点选取与标定

 

4、图像拼接融合

  图像拼接的关键两步是:配准(registration)和融合(blending)。配准的目的是根据几何运动模型,将图像注册到同一个坐标系中;融合则是将配准后的图像合成为一张大的拼接图像。在多幅图像配准的过程中,采用的几何运动模型主要有:平移模型、相似性模型、仿射模型和透视模型。图像的仿射模型是一个6参数的变换模型,图像的透视模型是具有8个参数的变换模型;

 

5、亮度与颜色的均衡处理

因为相机和光照强度的差异,会造成一幅图像内部,以及图像之间亮度的不均匀,拼接后的图像会出现明暗交替,这样给观察造成极大的不便。

        亮度与颜色均衡处理,通常的处理方式是通过相机的光照模型,校正一幅图像内部的光照不均匀性,然后通过相邻两幅图像重叠区域之间的关系,建立相邻两幅图像之间直方图映射表,通过映射表对两幅图像做整体的映射变换,最终达到整体的亮度和颜色的一致性。

全景拼接