基于相机阵列的全景成像方法转让专利

申请号 : CN201710407833.3

文献号 : CN107301620B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李甫颉朝敏牛毅石光明张犁

申请人 : 西安电子科技大学

摘要 :

本发明公开了一种基于相机阵列的全景成像方法,主要解决现有技术拼接场景较小且存在“鬼影”的问题。其方案是:1)使用阵列相机获取多幅图像,读入两幅图像分别提取SIFT特征,进行特征匹配查找,得到两幅图像的匹配点并进行筛选,计算最优变换矩阵,根据最优变换矩阵对图像进行变换,采用改进的最佳缝合线算法和加权平均融合算法对图像进行融合拼接;2)重复步骤1)直到完成上下两部分的图像拼接,使之作为待拼接图像,逆时针旋转90°后继续拼接,对结果顺时针旋转90°,得到最终拼接全景图像。本发明显著消除了“鬼影”现象,且得到全景图像视场大,分辨率高,更加贴近真实的全景图,可用于横竖两个方向更大场景图像的拼接。

权利要求 :

1.一种基于相机阵列的全景成像方法,包括:

(1)使用阵列相机完成多幅图像的同时采集,获取i幅图像;

(2)读入两幅图像并分别提取尺度不变特征变换特征点,即SIFT特征点:(2a)构造高斯金字塔及高斯差分金字塔,检测尺度空间极值;

(2b)将(2a)中的尺度空间极值作为关键点,对该关键点进行定位和方向确定;

(2c)对于每个完成定位和方向确定的关键点周围图像区域进行分块,并在该关键点为中心的4×4的块内计算8个方向的梯度直方图,绘制每个梯度方向的累加,生成具有独特性的128维的向量,用该向量将这个关键点描述出来,得到两幅图像的SIFT特征;

(3)对步骤(2)所得SIFT特征点进行特征匹配查找,得到每两幅图像的匹配点:(3a)采用k-d树算法根据步骤(2)所得的特征点对待拼接图像中的特征点建立k-d树;

(3b)采用BBF算法对图像进行特征匹配查找,实现两个图像的特征点匹配:(3b1)对输入图像中的每个特征点,在k-d树中查找出待拼接图像中与之欧氏距离最近的前两个最近邻特征点;

(3b2)将指定特征点与两个最近邻特征点中第一个最近邻的欧式距离与指定特征点与第二个最近邻的欧式距离求比值,并将该比值与设定的比例阈值0.49进行比较:如果比值小于该比例阈值,则接受指定特征点与第一个最近邻点为一对匹配点,实现两个图像的特征点匹配;否则不接受指定特征点与第一个最近邻点为一对匹配点;

(4)对步骤(3)所得的每两幅图像匹配点进行筛选并计算最优变换矩阵H:(4a)将步骤(3)中所得匹配点对作为样本集,从样本集中随机抽选一个RANSAC样本,即

4个匹配点对;

(4b)根据这4个匹配点对计算当前变换矩阵L;

(4c)根据样本集、当前变换矩阵L和误差度量函数,得到满足当前变换矩阵L的一致集C,并记录一致集中元素的个数a;

(4d)设定一个最优一致集,初始元素个数为0,将当前一致集中元素个数a与最优一致集中元素个数做比较:如果当前一致集中元素个数a大于最优一致集中元素个数,则将最优一致集更新为当前一致集,否则,则不更新最优一致集;

(4e)计算当前错误概率p:p=(1-in_fracs)o,其中,in_frac为当前最优一致集中元素个数占样本集中样本总数的百分比,s是计算变换矩阵需要的最小特征点对个数,取值为s=4,o是迭代次数;

(4f)将计算当前错误概率p与允许的最小错误概率0.01进行比较:如果p大于允许的最小错误概率,则返回步骤(4a),直到当前错误概率p小于最小错误概率为止;

如果p小于允许的最小错误概率,则当前最优一致集对应的变换矩阵L即为所求的最优变换矩阵H;

(5)根据步骤(4)所得最优变换矩阵对图像进行变换,并进行图像融合:(5a)根据步骤(4)所得最优变换矩阵对输入两幅图像中的任意一幅进行变换,使得两幅图像位于同一坐标系中且两幅图像具有重叠区域;

(5b)对(5a)中变换到同一坐标系的两幅图像进行亮度校正,使两幅图像的亮度差异最小:(5b1)将待拼接图像与输入图像均转化为灰度图,分别计算出待拼接图像的像素和与输入图像的像素和;

(5b2)计算待拼接图像像素和与输入图像像素和的比值b;

(5b3)如果(5b2)中计算所得的比值b小于1,则将输入图像每点的像素值与b相乘;如果该比值b大于1,则将待拼接图像的每点的像素值与b的倒数相乘;

(5c)在配准的图像上寻找一条最佳缝合线:

(5c1)将输入图像和待拼接图像均转化为灰度图,将输入图像与待拼接图像在重叠区域的对应像素进行依次相减,得到两幅图像重叠区域的差值图像,计算差值图像中每个像素的强度值E(x,y):E(x,y)=|Egray(x,y)|+Egeometry(x,y),其中,Egray表示重叠区域像素点的灰度值之差,Egeometry表示重叠区域像素点的结构值之差:Egeometry=(▽x1-▽x2)×(▽y1-▽y2)

其中,▽x1-▽x2为输入图像与待拼接图像在重叠区域的对应像素在x方向的梯度差,▽y1-▽y2为输入图像与待拼接图像在重叠区域的对应像素在y方向的梯度差;

▽x1为输入图像在重叠区域每个点在x方向的梯度,该梯度由x方向的核Sx与输入图像在重叠区域图像中的每个像素点做卷积和的运算得到;

▽x2为待拼接图像在重叠区域每个点在x方向的梯度,该梯度由x方向的核Sx与待拼接图像在重叠区域图像中的每个像素点做卷积和的运算得到;

▽y1为输入图像在重叠区域每个点在y方向的梯度,该梯度由y方向的核Sy与输入图像在重叠区域图像中的每个像素点做卷积和的运算得到;

▽y2为待拼接图像在重叠区域每个点在y方向的梯度,该梯度由y方向的核Sy与待拼接图像在重叠区域图像中的每个像素点做卷积和的运算得到;

所述Sx,Sy均为改进的Sobel算子模板,分别为:

(5c2)运用动态规划理论,将差值图像第一行的每一像素点作为一条缝合线的起点,向下扩展,寻找下一行相邻的三个点中强度值最小的点,使之作为缝合线的扩展方向,依次类推到最后一行,在生成的所有缝合线中找出E(x,y)之和最小的一条缝合线作为最佳缝合线;

(5d)对包含最佳缝合线的矩形进行加权平均融合,得到两幅图像的拼接全景图像I:(6)阵列图像拼接:

(6a)以拼接全景图像I和一张待拼接图像作为输入的两幅图像,继续重复步骤(2)~(5),循环进行,直到待拼接图像为第m幅图像为止,m<=i,最终得到m幅图像拼接成的横向拼接全景图;

(6b)重复(6a)k次,k<=i且k×m≤i,得到k幅横向拼接图,每幅横向拼接图由m幅图像拼接而成;

(6c)将k幅横向图像的前两幅作为输入图像,逆时针旋转90°,重复步骤(2)~(5),得到两幅图像的纵向拼接图,对于剩余k-2幅横向图像,以其前一次拼接好的图像和逆时针旋转

90°后的待拼接图像作为输入的两幅图像,再重复步骤(2)~(5),循环进行,直到待拼接图像为第k幅图像为止,再将拼接所得的纵向图像顺时针旋转90°,最终得到i幅图像的横纵向拼接全景图。

2.根据权利要求1所述的方法,其特征在于:步骤(1)中所述的阵列相机,是由i个相机在横纵方向进行二维组合排列,通过调节每个相机的位置及焦距,使得这些相机始终能够成行成列且整体组合为矩形,得到满足不同要求的图像。

3.根据权利要求1所述的方法,其特征在于:步骤(2a)中构造高斯金字塔及高斯差分金字塔,检测尺度空间极值,按如下步骤进行:(2a1)根据图像的原始大小和塔顶图像的大小,计算金字塔的层数n:n=log2{min(M,N)}-t,t∈[0,log2{min(M,N)})其中M,N分别为原图像的长和宽,t为金字塔塔顶图像的最小维数的对数值;

(2a2)将原图像作为高斯金子塔的第一层,再对原始图像逐层降阶采样,每次降采样所得到的新图像为金字塔的新一层,直到第n层为止,得到一系列由大到小的图像,从下到上构成塔状模型,得到初始图像金字塔;

(2a3)将初始图像金字塔每层的一张图像使用不同参数做高斯模糊,使得金字塔的每层含有多张高斯模糊图像,将金字塔每层多张图像合称为一组,得到高斯金字塔;

(2a4)将(2a3)得到的高斯金字塔每组中相邻上下两张图像相减,得到高斯差分金字塔;

(2a5)取高斯差分金字塔每组中的每一个像素点,分别将它们与本张以及上下两张的

26个邻域中所有像素点作比较,如果从高斯差分金字塔所取的像素点的值是最大值或最小值,则所取点的像素值是图像在当前尺度下的一个尺度空间极值,其中尺度空间由高斯金字塔实现,每一组的每一张图像对应不同的尺度。

4.根据权利要求1所述的方法,其特征在于:步骤(2b)中进行关键点定位和方向确定,按如下步骤进行:(2b1)通过插值去除低对比度的点,并且消除边缘响应,完成对关键点的精确定位;

(2b2)对于(2b1)中精确定位的关键点,采集其所在高斯金字塔图像3σ邻域窗口内像素的梯度和方向分布特征,梯度的模值和方向如下:θ(x,y)=tan-1((L(x,y+1)-L(x,y-1))/L(x+1,y)-L(x-1,y)))其中,L为关键点所在的尺度空间值,梯度的模值m(x,y)按σ=1.5σ_oct的高斯分布加成,按尺度采样的3σ原则,邻域窗口半径为3×1.5σ_oct,σ_oct是所在高斯金字塔组数,σ是高斯平滑因子;

(2b3)使用直方图依次统计每个关键点邻域窗口内像素的梯度和方向,即将直方图以每10度方向为一个柱,共36个柱,柱表示的方向为像素点梯度方向,柱的长短为梯度幅值,以直方图中最长柱表示的方向作为每个关键点的主方向,完成方向确定。

说明书 :

基于相机阵列的全景成像方法

技术领域

[0001] 本发明属于图像处理技术领域,特别涉及一种基于相机阵列的全景成像方法,可用于横竖两个方向更大场景图像的拼接。

背景技术

[0002] 随着科学技术的发展,数字成像技术正在逐步迈上一个新的台阶,数字成像设备也开始被广泛应用于日常生活中,利用数码相机,手机等设备拍摄相片已成为人们日常生活中不可或缺的一部分,与此同时,单个相机成像的局限也在日益显现:在一些特殊的应用场景中,由于数字成像设备自身的限制,使得使用者的需求不能被很好地满足。例如,当人们要获得宽视场,高分辨率的图像时,很多时候只能采用广角相机,然而其昂贵的价格却使人望而却步。
[0003] 为了解决上述问题,图像拼接技术应运而生。该技术可以将一系列有部分重叠边界的小视角图像根据相应算法进行匹配对准进而融合,最终拼接成一幅宽视角图像。
[0004] 图像拼接技术最直接的应用就是手机自带的全景成像模式,然而其局限也显而易见:只能横拍或只能竖拍,最终得到的图像只有一个方向的延伸;同时,拍摄这样的图像需要手持拍摄时有极高的稳定度,否则会导致最终得到的图像产生变形,无法得到想要的效果,使得用户体验大打折扣。
[0005] 维沃移动通信有限公司拥有的专利“一种全景拍照的方法及移动终端”(申请号201610515352.x,申请日2016.06.30,授权号CN 1059779156A,授权日2016.09.28)提出了一种全景拍照的方法及移动终端。该专利技术包括第一、第二和第三摄像头,通过在全景拍摄中控制三个摄像头获取三幅图像,同时进行图像拼接,生成目标全景图像,可在不水平旋转移动终端的情况下,一次拍照就获取到全景图像。该方法存在的不足之处是一次拍照仅能获取一个方向的图像,最终结果不能满足某些大场景拼接的需求。

发明内容

[0006] 本发明的目的在于针对上述已有技术的不足,提出一种基于相机阵列的全景成像方法,以通过一次拍照同时获取横竖两个方向的图像,满足更大场景图像拼接的需求。
[0007] 本发明的基本思路是:使用2×3阵列相机得到阵列图像,每两幅图像间都存在重叠区域,控制六个相机同步采集图像;对图像分别进行特征提取与两两匹配,最后进行图像融合完成拼接。其实现步骤如下:
[0008] (1)使用阵列相机完成多幅图像的同时采集,获取i幅图像,m≤i;
[0009] (2)读入两幅图像并分别提取尺度不变特征变换特征点,即SIFT特征点;
[0010] (3)对步骤(2)所得SIFT特征点进行特征匹配查找,得到每两幅图像的匹配点;
[0011] (4)对步骤(3)所得的每两幅图像匹配点进行筛选并计算最优变换矩阵H;
[0012] (5)根据步骤(4)所得最优变换矩阵对图像进行变换,并进行图像融合:
[0013] (5a)根据步骤(4)所得最优变换矩阵对输入两幅图像中的任意一幅进行变换,使得两幅图像位于同一坐标系中且两幅图像具有重叠区域;
[0014] (5b)对(5a)中变换到同一坐标系的两幅图像进行亮度校正,使两幅图像的亮度差异最小;
[0015] (5c)在配准的图像上寻找一条最佳缝合线;
[0016] (5d)对包含最佳缝合线的矩形进行加权平均融合,得到两幅图像的拼接全景图像;
[0017] (6)阵列图像拼接:
[0018] (6a)以其前一次拼接好的图像和待拼接图像作为输入的两幅图像,继续重复步骤(2)~(5),循环进行,直到待拼接图像为第m幅图像为止,m<=i,最终得到m幅图像的横向拼接全景图;
[0019] (6b)重复(6a)k次,k<=i且k×m≤i,得到k幅横向拼接图,每幅横向拼接图由m幅图像拼接而成;
[0020] (6c)将k幅横向图像的前两幅作为输入图像,逆时针旋转90°,重复步骤(2)~(5),得到两幅图像的纵向拼接图,对于剩余k-2幅横向图像,以其前一次拼接好的图像和逆时针旋转90°后的待拼接图像作为输入的两幅图像,再重复步骤(2)~(5),循环进行,直到待拼接图像为第k幅图像为止,再将拼接所得的纵向图像顺时针旋转90°,最终得到i幅图像的横纵向拼接全景图。
[0021] 本发明与现有技术相比有以下优点:
[0022] 第一、本发明将阵列图像与SIFT算法结合,并对SIFT算法进行了改进,在景深基本一致的情况下可以大幅缩减拼接时间;
[0023] 第二、本发明有效的实现了阵列图像与融合算法的结合,并对现有寻找最佳缝合线的算法进行了改进,即使用阵列相机获取图像,可以同时采集i幅图像进行拼接,减小因时间变化而导致的场景误差,尤其在动态场景下的物体位移相对最小,使得拼接效果更好;改进的最佳缝合线算法可以有效避开运动物体进行拼接,实验结果显示拼接图像几乎不存在拼接缝,“鬼影”现象的出现频率也大幅下降;
[0024] 第三、本发明使用阵列相机采集图像,可以满足一次拍摄就拼接成像,减少了工作量,得到更大视场,更高分辨率的拼接图。

附图说明

[0025] 图1为本发明的实现流程图;
[0026] 图2为本发明中用于图像采集的相机阵列图;
[0027] 图3为本发明中相机阵列采集的六幅图像;
[0028] 图4为对图3中的六幅图像进行了拼接及融合后的全景图像。

具体实施方式

[0029] 下面结合附图对本发明的具体实施例进行详细说明:
[0030] 参照图1,本发明的实现步骤如下:
[0031] 步骤1,获取图像。
[0032] 采用如图2所示相机阵列采集图像,该相机阵列由i个相机在横纵方向进行二维组合排列,通过调节每个相机的位置及焦距,使得这些相机始终能够成行成列且整体组合为矩形,得到满足不同要求的图像。
[0033] 该相机阵列中的每一个相机都可以连续采集多幅图像;通过改变相机的位置获取不同视野的图像;同时,每个相机都可以调节焦距,获得不同景深的图像。
[0034] 调节好相机位置及焦距后,快速按下开始与结束键,得到每个相机采集到的若干幅图像,每相邻两个相机采集到的图像均具有重叠区域,共得到i幅具有重叠区域的图像,本实例给出但不限于六幅图像。
[0035] 步骤2,读入两幅图像并分别提取SIFT特征。
[0036] 常见的特征点提取算法包括:Harris算子,LOG算子,SUSAN算子,SIFT算法等,本发明采用尺度不变特征变换算法提取特征点,即SIFT特征点,步骤如下:
[0037] (2a)构建高斯金字塔及高斯差分金字塔,检测尺度空间极值;
[0038] (2a1)构建高斯金字塔的过程包括对图像做降采样和对图像做高斯平滑两步;
[0039] 根据图像的原始大小和塔顶图像的大小,计算金字塔的层数n:
[0040] n=log2{min(M,N)}-t,t∈[0,log2{min(M,N)})
[0041] 其中M,N分别为原图像的长和宽,t为塔顶图像的最小维数的对数值。
[0042] 在本发明中,调整每个相机焦距,使得相机拍摄图像的景深基本一致,此时两幅图像的尺度基本一致,使得对两幅图像构建金字塔时金字塔层数n是一个大于1小于4的值,以降低拼接时间;
[0043] (2a2)将原图像作为高斯金子塔的第一层,再对原始图像逐层降阶采样,每次降采样所得到的新图像为金字塔的新一层,直到第n层为止,得到一系列由大到小的图像,从下到上构成塔状模型,得到初始图像金字塔;
[0044] (2a3)将初始图像金字塔每层的一张图像使用不同参数做高斯模糊,使得金字塔的每层含有多张高斯模糊图像,将金字塔每层多张图像合称为一组,得到高斯金字塔;
[0045] (2a4)构建高斯差分金字塔,即DOG金字塔:将(2a3)得到的高斯金字塔每组中相邻上下两张图像相减,得到高斯差分金字塔;
[0046] (2a5)进行空间极值点检测:
[0047] 取高斯差分金字塔每组中的每一个像素点,分别将它们与本张以及上下两张的26个邻域中所有像素点作比较:如果从高斯差分金字塔所取的像素点的值是最大值或最小值,则所取点的像素值是图像在当前尺度下的一个尺度空间极值,其中尺度空间由高斯金字塔实现,每一组的每一张图像对应不同的尺度;
[0048] (2b)将(2a)中的尺度空间极值作为关键点,对该关键点进行定位和方向确定:
[0049] (2b1)通过插值去除低对比度的点,并且消除边缘响应,完成对关键点的精确定位;
[0050] (2b2)对特征点进行方向赋值:
[0051] 对于(2b1)精确定位的关键点,采集其所在高斯金字塔图像3σ邻域窗口内像素的梯度和方向分布特征,梯度的模值m(x,y)和方向θ(x,y)如下:
[0052]
[0053] θ(x,y)=tan-1((L(x,y+1)-L(x,y-1))/L(x+1,y)-L(x-1,y)))
[0054] 其中,L为关键点所在的尺度空间值,梯度的模值m(x,y)按σ=1.5σ_oct的高斯分布加成,3σ邻域窗口半径为3×1.5σ_oct;
[0055] (2b3)使用直方图依次统计每个关键点邻域窗口内像素的梯度和方向,即将直方图以每10度方向为一个柱,共36个柱,柱表示的方向为像素点梯度方向,柱的长短为梯度幅值,以直方图中最长柱表示的方向作为每个关键点的主方向,完成方向确定;
[0056] (2c)对于每个完成定位和方向确定的关键点周围图像区域进行分块,并在该关键点为中心的4×4的块内计算8个方向的梯度直方图,绘制每个梯度方向的累加,生成具有独特性的128维的向量,用该向量将这个关键点描述出来,得到两幅图像的SIFT特征。
[0057] 步骤3,进行特征匹配查找,得到每两幅图像的匹配点。
[0058] 采用k-d树算法即k-d tree算法和最优节点优先算法,即BBF算法对图像进行特征匹配查找,实现两个图像的特征点匹配,步骤如下:
[0059] (3a)采用k-d树算法根据步骤(2)所得的特征点对待拼接图像中的特征点建立k-d树;
[0060] (3b)采用BBF算法对图像进行特征匹配查找,实现两个图像的特征点匹配:
[0061] (3b1)对输入图像中的每个特征点,在k-d树中查找出待拼接图像中与之欧氏距离最近的前两个最近邻特征点;
[0062] (3b2)将指定特征点与两个最近邻特征点中第一个最近邻的欧式距离与指定特征点与第二个最近邻的欧式距离求,并将该比值与设定的比例阈值0.49进行比较:
[0063] 如果比值小于该比例阈值,则接受指定特征点与第一个最近邻点为一对匹配点,实现两个图像的特征点匹配;否则不接受指定特征点与第一个最近邻点为一对匹配点。
[0064] 步骤4,对步骤3所得的每两幅图像匹配点进行筛选并计算最优变换矩阵H。
[0065] 本步骤采用RANSAC算法进行,其步骤如下:
[0066] (4a)将步骤3中所得匹配点对作为样本集,从样本集中随机抽选一个RANSAC样本,即4个匹配点对;
[0067] (4b)根据这4个匹配点对计算当前变换矩阵L;
[0068] (4c)根据样本集、当前变换矩阵L和误差度量函数,得到满足当前变换矩阵L的一致集C,并记录一致集中元素的个数a;
[0069] (4d)设定一个最优一致集,初始元素个数为0,将当前一致集中元素个数a与最优一致集中元素个数做比较:如果当前一致集中元素个数a大于最优一致集中元素个数,则将最优一致集更新为当前一致集,否则,则不更新最优一致集;
[0070] (4e)计算当前错误概率p:
[0071] p=(1-in_fracs)o
[0072] 其中,in_frac为当前最优一致集中元素个数占样本集中样本总数的百分比,s是计算变换矩阵需要的最小特征点对个数,取值为s=4,o是迭代次数;
[0073] (4f)将计算当前错误概率p与允许的最小错误概率0.01进行比较:
[0074] 如果p大于允许的最小错误概率,则返回步骤(4a),直到当前错误概率p小于最小错误概率为止;
[0075] 如果p小于允许的最小错误概率,则当前最优一致集对应的变换矩阵L即为所求的最优变换矩阵H,该最优变换矩阵的大小为3×3。
[0076] 步骤5,根据步骤4所得最优变换矩阵对图像进行变换和图像融合。
[0077] 由于传统的加权平均融合算法易产生“鬼影”现象,尤其在动态场景下,当使用阵列相机采集图像时,如存在运动物体,直接传统的加权平均融合算法效果很差,很难体现运动物体,因此本发明采用一种改进的最佳缝合线算法与加权融合算法结合,对“鬼影””现象的拼接融合有显著地改进,其步骤如下:
[0078] (5a)根据步骤(4)所得变换矩阵对输入两幅图像中的任意一幅进行变换,使得两幅图像位于同一坐标系中;
[0079] (5b)对(5a)中变换到同一坐标系的两幅图像进行亮度校正,使两幅图像的亮度差异最小,过程如下:
[0080] (5b1)将待拼接图像与输入图像均转化为灰度图,分别计算出待拼接图像的像素和与输入图像的像素和,即先计算输入图像非重叠部分的像素值之和g及待拼接图像非重叠部分的像素值之和v;再计算重叠区域的中心矩形的像素和q,该中心矩形的高为重叠区域高度值的1/2,宽为重叠区域宽度的1/1.5;然后得到输入图像的像素和为g+q,得到待拼接图像的像素和为v+q;
[0081] (5b2)计算待拼接图像与输入图像像素和的比值b,并将比值b与1进行比较:
[0082] 如果b小于1,则将输入图像每点的像素值与b相乘,执行(5c);
[0083] 如果b大于1,则将待拼接图像的每点的像素值与b的倒数相乘,执行(5c);
[0084] (5c)在配准且亮度矫正过的图像上寻找一条最佳缝合线:
[0085] (5c1)将输入图像和待拼接图像均转化为灰度图,将输入图像与待拼接图像在重叠区域的对应像素进行依次相减,得到两幅图像重叠区域的差值图像,计算差值图像中每个像素的强度值E(x,y):
[0086] E(x,y)=|Egray(x,y)|+Egeometry(x,y),
[0087] 其中,Egray表示重叠区域像素点的灰度值之差,Egeometry表示重叠区域像素点的结构值之差:
[0088] Egeometry=(▽x1-▽x2)×(▽y1-▽y2)
[0089] 其中,▽x1-▽x2为输入图像与待拼接图像在重叠区域的对应像素在x方向的梯度差,
[0090] ▽y1-▽y2为输入图像与待拼接图像在重叠区域的对应像素在y方向的梯度差;
[0091] ▽x1为输入图像在重叠区域每个点在x方向的梯度,该梯度由x方向的核Sx与输入图像在重叠区域图像中的每个像素点做卷积和的运算得到;
[0092] ▽x2为待拼接图像在重叠区域每个点在x方向的梯度,该梯度由x方向的核Sx与待拼接图像在重叠区域图像中的每个像素点做卷积和的运算得到;
[0093] ▽y1为输入图像在重叠区域每个点在y方向的梯度,该梯度由y方向的核Sy与输入图像在重叠区域图像中的每个像素点做卷积和的运算得到;
[0094] ▽y2为待拼接图像在重叠区域每个点在y方向的梯度,该梯度由y方向的核Sy与待拼接图像在重叠区域图像中的每个像素点做卷积和的运算得到;
[0095] Sx,Sy均为改进的Sobel算子模板,分别为:
[0096]
[0097] (5c2)运用动态规划理论,将差值图像第一行的每一像素点作为一条缝合线的起点,向下扩展,寻找下一行相邻的三个点中强度值最小的点,使之作为缝合线的扩展方向,依次类推到最后一行,在生成的所有缝合线中找出E(x,y)之和最小的一条缝合线作为最佳缝合线;
[0098] (5d)对包含最佳缝合线的矩形进行加权平均融合,得到两幅图像的拼接全景图像:
[0099] (5d1)找到最小缝合线后,取包含缝合线在内并左右各扩展10个像素的矩形区域,对其中的像素进行加权平均,得到该矩形区域的融合图;
[0100] (5d2)从输入图像中取得矩形区域左边部分,从变换后的待拼接图像中取得矩形区域右边部分,得到最终的融合图,至此,完成了两幅输入图像的拼接。
[0101] 步骤6,阵列图像的拼接。
[0102] (6a)以其前一次拼接好的图像和待拼接图像作为输入的两幅图像,继续重复步骤2~步骤5,循环进行,直到待拼接图像为第3幅图像为止,最终得到3幅图像的横向拼接全景图;
[0103] (6b)重复(6a)两次,得到两幅横向拼接图,每幅横向拼接图由3幅图像拼接而成;
[0104] (6c)判断这两幅横向拼接图的长和宽是否是4的倍数:若不是,将这两幅横向拼接图的长和宽就近修改为4的倍数,若是,则保持这两幅横向拼接图的长和宽不变;
[0105] (6d)将两幅横向拼接图作为输入图像,逆时针旋转90°,重复步骤2~步骤5,得到两幅图像的纵向拼接图,再将拼接所得的纵向图像顺时针旋转90°,最终得到6幅图像的横纵向拼接全景图。
[0106] 需要说明的是,本发明方法不仅仅局限于六幅阵列图像的拼接,该方法具有广泛适用性,在相机足够多的情况下或者移动相机分别取景时,可完成更多图像的拼接,也可以在现有基础上完成两幅,三幅,四幅图像的拼接,满足各种不同的需求,适用于各种不同的场合。同时,由于阵列相机可以实现六个相机同时拍摄,也保证了拼接结果的准确性。
[0107] 本发明的效果可通过一些实验进一步说明。
[0108] 1.实验条件
[0109] 实验系统包括一个阵列相机,如图2所示,本实验在VS2010的软件环境下进行。
[0110] 2.实验内容
[0111] 使用本发明方法采集室外图像,场景中包括一个正在移动的人,阵列相机采集到的图像如图3所示,其中图3中包括有六幅具有重叠区域的图像,利用本发明方法对图3六幅图像进行拼接后得到图4全景图。
[0112] 从图4可见,本发明对存在动态物体的图像拼接效果良好,不存在“鬼影”现象;在整幅拼接全景图中,没有观察到明显的拼接缝;相比单幅图像,该拼接全景图视野更大,图像细节更多,可获得高质量的拼接结果。