一种针对图像序列的图像拼接方法及终端与流程
未命名
07-15
阅读:113
评论:0
一种针对图像序列的图像拼接方法及终端
1.本案是以申请日为2019年06月26日,申请号为201910561644.0,名称为“一种图像的拼接方法及终端”的发明专利为母案而进行的分案申请。
技术领域
[0002][0003]
本发明涉及图像处理邻域,尤其涉及一种针对图像序列的图像拼接方法及终端。
背景技术:
[0004]
近年来,随着工业技术和机器视觉的快速发展,人们对更高质量、更大分辨率的图像需求也是越来越多。如在医学研究邻域,需要观察细胞的各种形态,而显微镜的视场角又很小,所以相机采集的图像也仅仅是局部特征,因此无法观察到更多的信息。此类问题不仅仅出现在医学研究中,在军事侦察、航空摄影、大地测绘、虚拟现实、智能交通控制等众多邻域都需要大视场图像来观察所需信息。目前采用广角镜头代替普通镜头来进行图像采集,也能获得较大视场的图像,但是随着镜头的视场角变大,图像带来的畸变也变大,严重影响采集图像的质量,而且较多的图像也会占用较多的存储空间。因此,为了解决上述问题,人们就想到了图像拼接的方法。
[0005]
图像拼接技术是将具有同一场景的小视角,低分辨率的序列图像,通过图像匹配与融合技术,拼接成一幅高质量、高分辨率的无缝大视场图像。拼接后的图像包含了序列图像的所有信息,并且解决了上述应用中出现的问题。
[0006]
然而,现有的图像拼接技术在进行图像融合时,只是简单地进行权重的一次计算并进行加权和,这样的拼接图像往往效果不好,拼接的部分会有“洞”的出现。
技术实现要素:
[0007]
本发明所要解决的技术问题是:提供一种针对图像序列的图像拼接方法及终端,能够对拼接过程中有“洞”的图像进行光滑、无缝的融合,改善拼接效果。
[0008]
为了解决上述技术问题,本发明采用的一种技术方案为:
[0009]
一种针对图像序列的图像拼接方法,包括步骤:
[0010]
s1、获取具有重叠区域的两帧图像;
[0011]
s2、分别提取所述两帧图像的特征点,对所述两帧图像的特征点进行匹配,得到所述两帧图像间的映射矩阵;
[0012]
s3、根据所述映射矩阵,分别对两帧图像进行坐标变换,确定两帧图像的重叠区域;
[0013]
s4、分别通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重,根据所述权重,对两帧图像的重叠区域进行加权平均,得到拼接后的图像;
[0014]
s5、根据所述拼接后的图像,从所述两帧图像重叠区域的起始位置处截取出一帧融合后的图像,作为新的第一帧图像,并实时采集新的一帧图像,作为新的第二帧图像,并
返回执行步骤s2。
[0015]
为了解决上述技术问题,本发明采用的另一种技术方案为:
[0016]
一种针对图像序列的图像拼接终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以上一种针对图像序列的图像的接方法中的步骤。
[0017]
本发明的有益效果在于:在进行两帧图片的拼接过程中,在进行融合时,分别通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重,根据所述权重,对两帧图像的重叠区域进行加权平均,得到拼接后的图像,进行权重计算时是通过两次计算权重获得的,并且进行融合时是进行加权平均,能够对在拼接过程中有“洞”的图像进行光滑的、无缝的融合,改善了图像拼接效果,并重复该步骤,实现针对图像序列的图像拼接。
附图说明
[0018]
图1为本发明实施例的一种针对图像序列的图像拼接方法的步骤流程图;
[0019]
图2为本发明实施例的一种针对图像序列的图像拼接终端的结构示意图;
[0020]
图3为本发明实施例的区域划分的结构示意图;
[0021]
图4为本发明实施例的坐标系旋转的示意图;
[0022]
图5为本发明实施例的子区域梯度信息的8个方向的示意图;
[0023]
图6为本发明实施例的第一帧图像的示意图;
[0024]
图7为本发明实施例的第二帧图像的示意图;
[0025]
图8为本发明实施例的第一帧图像和第二帧图像融合后的图像的示意图;
[0026]
标号说明:
[0027]
1、一种针对图像序列的图像拼接终端;2、存储器;3、处理器。
具体实施方式
[0028]
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0029]
请参照图1,一种针对图像序列的图像拼接方法,包括步骤:
[0030]
s1、获取具有重叠区域的两帧图像;
[0031]
s2、分别提取所述两帧图像的特征点,对所述两帧图像的特征点进行匹配,得到所述两帧图像间的映射矩阵;
[0032]
s3、根据所述映射矩阵,分别对两帧图像进行坐标变换,确定两帧图像的重叠区域;
[0033]
s4、分别通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重,根据所述权重,对两帧图像的重叠区域进行加权平均,得到拼接后的图像。
[0034]
从上述描述可知,本发明的有益效果在于:在进行两帧图片的拼接过程中,在进行融合时,分别通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重,根据所述权重,对两帧图像的重叠区域进行加权平均,得到拼接后的图像,进行权重计算时是通过两次计算权重获得的,并且进行融合时是进行加权平均,能够对在拼接过程中有“洞”的图像进行光滑的、无缝的融合,改善了图像拼接效果。
[0035]
进一步的,所述步骤s4中所述通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重包括:
[0036]
开辟两个与两帧图像的重叠区域等大的权重空间,分别用来存储两帧图像重叠区域的像素点的权重,并将权重空间数据初始化为0;
[0037]
分别将两帧图像对应的权重空间中与对应帧的图像的重叠区域中非零像素点对应的数据置为第一预设权重值,与对应帧的图像的重叠区域中边界对应的数据置为第二预设权重值;
[0038]
对每一帧图像中的重叠区域的像素点分别计算两次权重:
[0039]
第一次权重计算时,从第一行开始至最后一行,从第一列开始至最后一列,对重叠区域中的每一个像素点执行:
[0040]
从该像素点的左边的邻域点开始,按顺时针方向依次取出四个邻域点,对所述四个邻域点分别加上预设值,取所述加上预设值的四个邻域点和当前像素点的权重中的最小值作为当前像素点的第一权重,在对应的权重空间中更新所述当前像素点对应的权重为所述第一权重;
[0041]
第二次权重计算时,从最后一行开始至第一行,从最后一列开始至第一列,对重叠区域中的每一个像素点执行:
[0042]
从该像素点的右边的邻域点开始,按顺时针方向依次取出四个邻域点,对所述四个邻域点分别加上预设值,取所述加上预设值的四个邻域点和当前像素点的权重中的最小值作为当前像素点的第二权重,所述第二权重用于进行加权平均。
[0043]
由上述描述可知,两次权重分别从像素点左上角的邻域点和右下角的邻域点开始,依次取出四个邻域点,基于四个邻域点确定对应像素点的权重,并且第二次权重的计算是在第一次权重数据的基础上进行的,保证了加权平均后所融合的图像的光滑性和无缝性,避免在拼接过程中出现“洞”。
[0044]
进一步的,所述步骤s2中提取图像的特征点包括:
[0045]
对图像进行高斯滤波,计算滤波后的图像中每一个像素点的梯度值;
[0046]
根据所述梯度值计算每一个像素点的响应值;
[0047]
根据所述响应值计算每一个像素点预设邻域内的响应值极大值点,将所述响应值极大值点对应的像素点作为特征点;
[0048]
根据所述响应值对所述特征点进行降序排列,取出前n个特征点作为所述图像的特征点。
[0049]
由上述描述可知,根据像素的梯度值确定像素的响应值,并对响应值进行排序,取响应值较大的前几个特征点作为图像的特征点,保证了所确定的图像的特征点的准确性。
[0050]
进一步的,所述根据所述响应值对所述特征点进行降序排列,取出前n个特征点作为所述图像的特征点包括:
[0051]
选取最大响应值的预设倍数作为第一阈值;
[0052]
确定响应值大于所述第一阈值的特征点,作为第一特征点;
[0053]
计算响应值小于或等于所述第一阈值的特征点中特征点与特征点之间的距离,将距离小于第二阈值对应的特征点作为第二特征点;
[0054]
将所述第一特征点和第二特征点作为所述图像的特征点。
[0055]
由上述描述可知,通过确定阈值,基于阈值选择适当的特征点,并且对于不满足阈值条件的特征点,通过特征点之间距离的确定,保留满足距离条件的特征点能够均匀、鲁棒地提取到准确表征所述图像的响应值较强的特征点。
[0056]
进一步的,所述步骤s2中所述对所述两帧图像的特征点进行匹配,得到所述两帧图像间的映射矩阵包括:
[0057]
s21、对每一个图像的特征点执行:
[0058]
以所述特征点为中心建立水平直角坐标系,并取所述特征点n*n邻域内的像素点;
[0059]
按照逆时针方向将所述坐标系每预设度数a划分为一个区域,将所述n*n邻域内的像素点划分成360/a个区域;
[0060]
统计每一区域中的每个像素点的梯度幅值并累加,得到累加幅度值;
[0061]
选取最大累加幅度值对应的区域的角度作为主方向;
[0062]
以所述特征点为中心,将所述坐标系旋转到与所述主方向一致的位置,并取所述像素点m*m邻域内的像素点;
[0063]
将所述n*n邻域内的像素点分成i*i个子区域;
[0064]
分别计算每个子区域的梯度信息,将所述i*i个子区域的梯度信息作为所述特征点的描述子;
[0065]
s22、计算其中一帧图像的每一个特征点与另一帧图像的每一个特征点之间的描述子的欧式距离,将所述描述子的欧式距离中最小距离与次最小距离的比值小于预设比值对应的两个特征点作为粗匹配点对;
[0066]
s23、根据所述粗匹配点对,随机取出两组点对,计算所述两组点对的映射矩阵;
[0067]
s24、选出所述粗匹配点对中的一组点,作为第一组点,根据所述映射矩阵计算所述第一组点映射后的第二组点;
[0068]
s25、计算所述第一组点与第二组点之间的残差,统计满足预设残差条件的点的个数;
[0069]
s26、判断满足残差条件的点的个数是否大于预设个数,若是,则所述映射矩阵为所述两帧图像间的映射矩阵,否则,返回执行步骤s23。
[0070]
由上述描述可知,通过描述子对图像的特征点进行描述,能够对具有旋转的图像中的点作出准确的描述,根据所述特征点的描述子计算两帧图像的特征点之间的距离比值,能够将大部分错误的特征点对剔除,保留大部分的正确点对,通过随机抽样并计算通过映射矩阵映射前后的点组之间的残差,能够完全剔除错误匹配点对,最终根据正确的点对计算出两帧图像之间正确的映射矩阵,提高了两帧图像之间的匹配度,为后续正确融合提供了保证。
[0071]
请参照图2,一种针对图像序列的图像拼接终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0072]
s1、获取具有重叠区域的两帧图像;
[0073]
s2、分别提取所述两帧图像的特征点,对所述两帧图像的特征点进行匹配,得到所述两帧图像间的映射矩阵;
[0074]
s3、根据所述映射矩阵,分别对两帧图像进行坐标变换,确定两帧图像的重叠区域;
[0075]
s4、分别通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重,根据所述权重,对两帧图像的重叠区域进行加权平均,得到拼接后的图像。从上述描述可知,本发明的有益效果在于:在进行两帧图片的拼接过程中,在进行融合时,分别通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重,根据所述权重,对两帧图像的重叠区域进行加权平均,得到拼接后的图像,进行权重计算时是通过两次计算权重获得的,并且进行融合时是进行加权平均,能够对在拼接过程中有“洞”的图像进行光滑的、无缝的融合,改善了图像拼接效果。
[0076]
进一步的,所述步骤s4中所述通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重包括:
[0077]
开辟两个与两帧图像的重叠区域等大的权重空间,分别用来存储两帧图像重叠区域的像素点的权重,并将权重空间数据初始化为0;
[0078]
分别将两帧图像对应的权重空间中与对应帧的图像的重叠区域中非零像素点对应的数据置为第一预设权重值,与对应帧的图像的重叠区域中边界对应的数据置为第二预设权重值;
[0079]
对每一帧图像中的重叠区域的像素点分别计算两次权重:
[0080]
第一次权重计算时,从第一行开始至最后一行,从第一列开始至最后一列,对重叠区域中的每一个像素点执行:
[0081]
从该像素点的左边的邻域点开始,按顺时针方向依次取出四个邻域点,对所述四个邻域点分别加上预设值,取所述加上预设值的四个邻域点和当前像素点的权重中的最小值作为当前像素点的第一权重,在对应的权重空间中更新所述当前像素点对应的权重为所述第一权重;
[0082]
第二次权重计算时,从最后一行开始至第一行,从最后一列开始至第一列,对重叠区域中的每一个像素点执行:
[0083]
从该像素点的右边的邻域点开始,按顺时针方向依次取出四个邻域点,对所述四个邻域点分别加上预设值,取所述加上预设值的四个邻域点和当前像素点的权重中的最小值作为当前像素点的第二权重,所述第二权重用于进行加权平均。
[0084]
由上述描述可知,两次权重分别从像素点左上角的邻域点和右下角的邻域点开始,依次取出四个邻域点,基于四个邻域点确定对应像素点的权重,并且第二次权重的计算是在第一次权重数据的基础上进行的,保证了加权平均后所融合的图像的光滑性和无缝性,避免在拼接过程中出现“洞”。
[0085]
进一步的,所述步骤s2中提取图像的特征点包括:
[0086]
对图像进行高斯滤波,计算滤波后的图像中每一个像素点的梯度值;
[0087]
根据所述梯度值计算每一个像素点的响应值;
[0088]
根据所述响应值计算每一个像素点预设邻域内的响应值极大值点,将所述响应值极大值点对应的像素点作为特征点;
[0089]
根据所述响应值对所述特征点进行降序排列,取出前n个特征点作为所述图像的特征点。
[0090]
由上述描述可知,根据像素的梯度值确定像素的响应值,并对响应值进行排序,取响应值较大的前几个特征点作为图像的特征点,保证了所确定的图像的特征点的准确性。
[0091]
进一步的,所述根据所述响应值对所述特征点进行降序排列,取出前n个特征点作为所述图像的特征点包括:
[0092]
选取最大响应值的预设倍数作为第一阈值;
[0093]
确定响应值大于所述第一阈值的特征点,作为第一特征点;
[0094]
计算响应值小于或等于所述第一阈值的特征点中特征点与特征点之间的距离,将距离小于第二阈值对应的特征点作为第二特征点;
[0095]
将所述第一特征点和第二特征点作为所述图像的特征点。
[0096]
由上述描述可知,通过确定阈值,基于阈值选择适当的特征点,并且对于不满足阈值条件的特征点,通过特征点之间距离的确定,保留满足距离条件的特征点能够均匀、鲁棒地提取到准确表征所述图像的响应值较强的特征点。
[0097]
进一步的,所述步骤s2中所述对所述两帧图像的特征点进行匹配,得到所述两帧图像间的映射矩阵包括:
[0098]
s21、对每一个图像的特征点执行:
[0099]
以所述特征点为中心建立水平直角坐标系,并取所述特征点n*n邻域内的像素点;
[0100]
按照逆时针方向将所述坐标系每预设度数a划分为一个区域,将所述n*n邻域内的像素点划分成360/a个区域;
[0101]
统计每一区域中的每个像素点的梯度幅值并累加,得到累加幅度值;
[0102]
选取最大累加幅度值对应的区域的角度作为主方向;
[0103]
以所述特征点为中心,将所述坐标系旋转到与所述主方向一致的位置,并取所述像素点m*m邻域内的像素点;
[0104]
将所述n*n邻域内的像素点分成i*i个子区域;
[0105]
分别计算每个子区域的梯度信息,将所述i*i个子区域的梯度信息作为所述特征点的描述子;
[0106]
s22、计算其中一帧图像的每一个特征点与另一帧图像的每一个特征点之间的描述子的欧式距离,将所述描述子的欧式距离中最小距离与次最小距离的比值小于预设比值对应的两个特征点作为粗匹配点对;
[0107]
s23、根据所述粗匹配点对,随机取出两组点对,计算所述两组点对的映射矩阵;
[0108]
s24、选出所述粗匹配点对中的一组点,作为第一组点,根据所述映射矩阵计算所述第一组点映射后的第二组点;
[0109]
s25、计算所述第一组点与第二组点之间的残差,统计满足预设残差条件的点的个数;
[0110]
s26、判断满足残差条件的点的个数是否大于预设个数,若是,则所述映射矩阵为所述两帧图像间的映射矩阵,否则,返回执行步骤s23。
[0111]
由上述描述可知,通过描述子对图像的特征点进行描述,能够对具有旋转的图像中的点作出准确的描述,根据所述特征点的描述子计算两帧图像的特征点之间的距离比值,能够将大部分错误的特征点对剔除,保留大部分的正确点对,通过随机抽样并计算通过
映射矩阵映射前后的点组之间的残差,能够完全剔除错误匹配点对,最终根据正确的点对计算出两帧图像之间正确的映射矩阵,提高了两帧图像之间的匹配度,为后续正确融合提供了保证。
[0112]
实施例一
[0113]
请参照图1,一种针对图像序列的图像拼接方法,包括步骤:
[0114]
s1、获取具有重叠区域的两帧图像;
[0115]
具体的,开辟一块合适的内存空间,并将实时采集到的第一帧图像存放在所述内存空间的某个位置,假设其起点坐标为p(x,y);
[0116]
通过移动目标或者相机,实时采集与第一帧图像具有重叠区域的第二帧图像;
[0117]
s2、分别提取所述两帧图像的特征点,对所述两帧图像的特征点进行匹配,得到所述两帧图像间的映射矩阵;
[0118]
首先,先判断所述图像的通道数,如果为rgb三通道图像,则根据灰度图像转换公式将其转换为单通道的灰度图像,若图像本身已经为单通道图像,则不需要进行转换;
[0119]
rgb转灰度图像公式如下:
[0120]
gray=r*0.299+g*0.587+b*0.114;
[0121]
其中,r、g、b分别表示图像中像素点对应的红、绿、蓝三个颜色通道的值,gray为转换后像素点对应的灰度值;
[0122]
接着,对所述亮度图像进行高斯滤波,得到滤波后的图像;
[0123]
计算滤波后的图像中每一个像素点的梯度值,包括:
[0124]
计算每一个像素点在水平方向、垂直方向的梯度值,
[0125]
其中,像素点(i,j)在水平方向的梯度值:
[0126]ix
(i,j)=i(i,j)-i(i,j+1);
[0127]
像素点(i,j)在垂直方向的梯度值:
[0128]iy
(i,j)=i(i,j)-i(i+1,j);
[0129]
根据所述梯度值计算每一个像素点的响应值,响应值公式为:
[0130]iresp
=i
x2
*i
y2
-i
x
*iy-k*(i
x2
+i
y2
)
[0131]
式中,i
x
为该像素点的水平方向梯度,iy为该像素点的垂直方向梯度,k为调节系数;
[0132]
根据所述响应值计算每一个像素点预设邻域内的响应值极大值点,将所述响应值极大值点对应的像素点作为特征点,所述预设邻域优选为3*3;
[0133]
根据所述响应值对所述特征点进行降序排列,取出前n个特征点作为所述图像的特征点;
[0134]
优选的,所述根据所述响应值对所述特征点进行降序排列,取出前n个特征点作为所述图像的特征点包括:
[0135]
选取最大响应值的预设倍数作为第一阈值,其中,所述预设倍数可以为0~1倍,优选为0.8倍;
[0136]
确定响应值大于所述第一阈值的特征点,作为第一特征点,记为特征点集p1,并记响应值小于或者等于所述第一阈值的特征点构成的集合为特征点集p2;
[0137]
计算特征点集p2中的特征点两两之间的距离,将距离小于第二阈值对应的特征点
作为第二特征点,记为特征点集p3,其中第二阈值优选的为10;
[0138]
将特征点集p1和特征点集p3作为所述图像的特征点集合;
[0139]
s3、根据所述映射矩阵,分别对两帧图像进行坐标变换,确定两帧图像的重叠区域;
[0140]
根据映射矩阵,将第一帧图像作为基准,采用图像插值的方式将第二帧图像变换到第一帧图像的坐标系下,由映射矩阵计算两帧图像开始重叠的起点位置st(x1,y1)与终点位置et(x2,y2),根据所述起点位置st(x1,y1)和终点位置et(x2,y2)分别从两帧图像中截取出对应的重叠区域;
[0141]
s4、分别通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重,根据所述权重,对两帧图像的重叠区域进行加权平均,得到拼接后的图像。
[0142]
图像在拼接过程中,找到了第一帧图像和第二帧图像的相对位置关系后,能够得到两帧图像的重叠区域的四个坐标,接下来即是计算两帧图像的重叠区域对应的权重,此时开辟两个与两帧图像重叠区域等大的空间,分别用来存储两帧图像重叠区域的像素的权重,并将权重空间数据初始化为0,并根据这四个坐标,将权重空间中与第一帧图像重叠区域中非零像素值对应的数据置为第一预设权重值,优选的设置为255,并将权重空间中与所述第一帧图像重叠区域中边界对应的数据置为第二预设权重值,优选的,设置为0;将权重空间中与第二帧图像重叠区域中非零像素值对应的数据置为第一预设权重值,优选的设置为255,并将权重空间中与所述第二帧图像重叠区域中边界对应的数据置为第二预设权重值,优选的设置为0;由于输入的是8bit的三通道图像,最大的像素值为255,因此,设置为255的值,如果图像的数据不为8bit,则可以根据图像的bit位数实时更改非零像素点对应的权重值;
[0143]
通过上述权重值的初始设置,能够使得拼接后的两张图像的边缘平滑过渡;
[0144]
其中,所述通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重包括:
[0145]
第一次权重计算时,从第一行开始至最后一行,从第一列开始至最后一列,对重叠区域中的每一个像素点执行:
[0146]
从该像素点的左边的邻域点开始,按顺时针方向依次取出四个邻域点,对所述四个邻域点的权重分别加上预设值,优选的,分别加上1,2,1,2,取所述加上预设值后的四个邻域点和当前像素点的权重中的最小值作为当前像素点的第一权重,在对应的权重空间中更新所述像素点对应的权重为所述第一权重;
[0147]
权重计算如下:
[0148]
i,j分别表示像素行,列索引号,i(i,j)表示像素(i,j)对应的权重:
[0149]
d1=1,d2=2;
[0150]
i(i-1,j-1)+d2i(i-1,j)+d1i(i-1,j+1)+d2i(i,j-1)+d1i(i,j)
[0151]
像素(i,j)对应的权重:
[0152]
i(i,j)=min(i(i-1,j-1)+d2,i(i-1,j)+d1,i(i-1,j+1)+d2,i(i,j-1)+d1,i(i,j));
[0153]
第二次权重计算时,从最后一行开始至第一行,从最后一列开始至第一列,对重叠
区域中的每一个像素点执行:
[0154]
从该像素点的右边的邻域点开始,按顺时针方向依次取出四个邻域点,对所述四个邻域点分别加上预设值,优选的,分别加上1,2,1,2,取所述加上预设值后的四个邻域点和当前像素点中的最小值作为当前像素点的第二权重,在对应的权重空间中更新所述像素点对应的权重为所述第二权重,所述第二权重用于进行加权平均;
[0155]
权重计算如下:
[0156]
i(i,j)i(i,j+1)+d1i(i+1,j-1)+d2i(i+1,j)+d1i(i+1,j+1)+d2
[0157]
像素(i,j)对应的权重:
[0158]
i(i,j)=min(i(i,j+1)+d1,i(i+1,j+1)+d2,i(i+1,j)+d1,i(i+1,j-1)+d2,i(i,j));
[0159]
通过将权重加上d1或d2,已经能够达到融合的精度,不需要将数据变成浮点数据,也不需要更多的邻域点参与计算,这样提高了计算速度;
[0160]
根据所述第二权重,将截取的重叠区域与对应的权重相乘,相乘后将两帧图像加权后的重叠区域相加并取平均,即得到融合后的新图像,将此新图像至于重叠区域的起点位置st(x1,y1)与终点位置et(x2,y2)之间,并加上第二帧图像除所述重叠区域外剩余的图像部分,即成为拼接后的新图像;
[0161]
根据所述拼接后的图像,从上述的起点位置st(x1,y1)处截取出一帧融合后的图像替换前一帧图像,作为新的第一帧图像,并实时采集新的一帧图像,作为新的第二帧图像,并返回执行步骤s2,从而实现对连续采集的图像序列进行快速实时的拼接。
[0162]
实施例二
[0163]
本实施例与实施例一的不同在于:
[0164]
所述步骤s2中所述对所述两帧图像的特征点进行匹配,得到所述两帧图像间的映射矩阵包括:
[0165]
s21、对每一个图像的特征点执行:
[0166]
以所述特征点为中心建立水平直角坐标系,并取所述特征点n*n邻域内的像素点,优选的,n为11;
[0167]
按照逆时针方向将所述坐标系每预设度数m划分为一个区域,将所述n*n邻域内的像素点划分成360/a个区域,优选的,m为10度,这样就分成36个区域,如图3所示,∠aob,∠boc,∠cod均为10度,表示划分出的一个个区域;
[0168]
统计每一区域中的每个像素点的梯度幅值并累加,得到累加幅度值;
[0169]
选取最大累加幅度值对应的区域的角度作为主方向;
[0170]
以所述特征点为中心,将所述坐标系旋转到与所述主方向一致的位置,比如,如图4所示,假设m为10度,逆时针第三个区域的累加幅度值最大,则该区域的角度30度即为主方向,此时,将坐标系逆时针旋转30度;
[0171]
并取所述特征点m*m邻域内的像素点,优选的,当n取11时,m为即m是n的倍,这样保证能够完全取到原来的n*n区域内的数据,其中,旋转的目的在于两幅图像有相对旋转后,能够准确的描述出特征点的特征描述子,这样才能准确的找到特征点按主
方向旋转后的像素点;
[0172]
将所述n*n邻域内的像素点分成i*i个子区域,优选的i为4,即每个象限四个子区域;
[0173]
分别计算每个子区域的梯度信息,每个子区域的梯度信息为所述子区域中心像素点在8个方向上的梯度信息,即以所述中心像素点为圆心,按照45度为一份,分成8个方向,将所述i*i个子区域的梯度信息作为所述特征点的描述子,即每个特征点的描述子为一个1*(8*i*i)维的向量,也就是1行,8*i*i列的向量;
[0174]
如图5所示,k即为一个子区域中的中心像素点,图中八个箭头方向即表示8个方向,k对应的子区域的梯度信息即为该八个箭头方向上的梯度信息;
[0175]
s22、计算其中一帧图像的每一个特征点与另一帧图像的每一个特征点之间的描述子的欧式距离,将所述描述子的欧式距离中最小距离与次最小距离的比值小于预设比值对应的两个特征点作为粗匹配点对,所述预设比值优选为0.8;
[0176]
s23、根据所述粗匹配点对,随机取出两组点对,计算所述两组点对的映射矩阵;
[0177]
s24、选出所述粗匹配点对中的一组点,作为第一组点,根据所述映射矩阵计算所述第一组点映射后的第二组点;
[0178]
s25、计算所述第一组点与第二组点之间的残差,统计满足预设残差条件的点的个数;
[0179]
s26、判断满足残差条件的点的个数是否大于预设个数,若是,则所述映射矩阵为所述两帧图像间的映射矩阵,否则,返回执行步骤s23;
[0180]
其中,步骤s23-s26具体如下:
[0181]
根据确定的粗匹配点对,两帧图像的粗匹配点对分别为第一特征点组lp{lp1,lp2,
…
lpn}以及第二特征点组rp{rp1,rp2,
…
,rpn};
[0182]
从lp和rp中对应位置随机选取两组点对,即四个特征点,比如lp1、rp1与lp4、rp4;
[0183]
根据选取出的两组点对计算映射矩阵h;
[0184]
选取其中一特征点组作为第一组点,比如选取rp,根据所述映射矩阵h计算rp的反射影点rp’=h-1
*rp;
[0185]
计算rp与rp’的残差errp=rp
–
rp’,统计errp中小于4的点的个数;
[0186]
若errp中小于4的点的个数大于rp点的个数的0.7倍,则认为此时的h是正确的映射矩阵,否则,则继续从所述粗匹配点对中随机选取两组特征点对,并返回执行步骤s23;
[0187]
优选的,也可以将满足上述残差条件最多的点对应的映射矩阵作为正确的映射矩阵;
[0188]
采用上述方法融合的示意图如图6-8所示,其中,图6为第一帧图像,图7为第二帧图像,图8为融合后的图像。
[0189]
实施例三
[0190]
请参照图2,一种针对图像序列的图像拼接终端1,包括存储器2、处理器3以及存储在所述存储器1上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一中的各个步骤。
[0191]
实施例四
[0192]
请参照图2,一种针对图像序列的图像拼接终端1,包括存储器2、处理器3以及存储
在所述存储器1上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例二中的各个步骤。
[0193]
综上所述,本发明提供的一种针对图像序列的图像拼接方法及终端,在图像匹配过程中,基于响应值确定特征点,并基于特征点确定映射矩阵,在图像融合过程中,通过两次权重计算确定出重叠区域的权重,通过加权平均得到最终拼接后的图像;基于像素点的响应值确定图像的特征点,并通过阈值调节实现均匀、鲁棒的提取到响应值较强的点;通过对特征点的描述,能够对具有旋转的图像中的点作出准确的描述,并且根据特征点的描述子计算特征点间的距离比值,能够将大部分错误的特征点对剔除,保留大部分的正确点对,最后通过随机抽样完全剔除错误匹配点对,从而得到正确的映射矩阵,采用角点提取算法,能够准确快速的找到特征点,并且具有旋转不变性,不需要对图像进行金字塔分层就能准确的找到相互匹配的特征点;通过两次权重计算可以对拼接过程中有“洞”的图像进行光滑、无缝的融合,所述融合算法能够在水平、垂直或任意方向同时进行融合,不会在水平与垂直方向产生不平滑过渡的现象,保证了拼接效果。
[0194]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术邻域,均同理包括在本发明的专利保护范围内。
技术特征:
1.一种针对图像序列的图像拼接方法,其特征在于,包括步骤:s1、获取具有重叠区域的两帧图像;s2、分别提取所述两帧图像的特征点,对所述两帧图像的特征点进行匹配,得到所述两帧图像间的映射矩阵;s3、根据所述映射矩阵,分别对两帧图像进行坐标变换,确定两帧图像的重叠区域;s4、分别通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重,根据所述权重,对两帧图像的重叠区域进行加权平均,得到拼接后的图像;s5、根据所述拼接后的图像,从所述两帧图像重叠区域的起始位置处截取出一帧融合后的图像,作为新的第一帧图像,并实时采集新的一帧图像,作为新的第二帧图像,并返回执行步骤s2。2.根据权利要求1所述的一种针对图像序列的图像拼接方法,其特征在于,所述步骤s4中所述通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重包括:开辟两个与两帧图像的重叠区域等大的权重空间,分别用来存储两帧图像重叠区域的像素点的权重,并将权重空间数据初始化为0;分别将两帧图像对应的权重空间中与对应帧的图像的重叠区域中非零像素点对应的数据置为第一预设权重值,与对应帧的图像的重叠区域中边界对应的数据置为第二预设权重值;对每一帧图像中的重叠区域的像素点分别计算两次权重:第一次权重计算时,从第一行开始至最后一行,从第一列开始至最后一列,对重叠区域中的每一个像素点执行:从该像素点的左边的邻域点开始,按顺时针方向依次取出四个邻域点,对所述四个邻域点分别加上预设值,取所述加上预设值的四个邻域点和当前像素点的权重中的最小值作为当前像素点的第一权重,在对应的权重空间中更新所述当前像素点对应的权重为所述第一权重;第二次权重计算时,从最后一行开始至第一行,从最后一列开始至第一列,对重叠区域中的每一个像素点执行:从该像素点的右边的邻域点开始,按顺时针方向依次取出四个邻域点,对所述四个邻域点分别加上预设值,取所述加上预设值的四个邻域点和当前像素点的权重中的最小值作为当前像素点的第二权重,所述第二权重用于进行加权平均。3.根据权利要求2所述的一种针对图像序列的图像拼接方法,其特征在于,步骤s4中根据所述权重,对两帧图像的重叠区域进行加权平均,得到拼接后的图像具体为:根据所述第二权重,将截取的重叠区域与对应的权重相乘,相乘后将两帧图像加权后的重叠区域相加并取平均,即得到融合后的新图像,将此新图像至于所述重叠区域的起点位置与终点位置之间,并加上第二帧图像除所述重叠区域外剩余的图像部分,即成为拼接后的新图像。4.根据权利要求1所述的一种针对图像序列的图像拼接方法,其特征在于,所述步骤s3具体为:根据映射矩阵,将第一帧图像作为基准,采用图像插值的方式将第二帧图像变换到第一帧图像的坐标系下,由映射矩阵计算两帧图像开始重叠的起点位置st(x1,y1)与终点位
置et(x2,y2),根据所述起点位置st(x1,y1)和终点位置et(x2,y2)分别从两帧图像中截取出对应的重叠区域。5.根据权利要求1所述的一种针对图像序列的图像拼接方法,其特征在于,所述步骤s2中提取图像的特征点包括:对图像进行高斯滤波,计算滤波后的图像中每一个像素点的梯度值;根据所述梯度值计算每一个像素点的响应值;根据所述响应值计算每一个像素点预设邻域内的响应值极大值点,将所述响应值极大值点对应的像素点作为特征点;根据所述响应值对所述特征点进行降序排列,取出前n个特征点作为所述图像的特征点。6.根据权利要求5所述的一种针对图像序列的图像拼接方法,其特征在于,所述根据所述响应值对所述特征点进行降序排列,取出前n个特征点作为所述图像的特征点包括:选取最大响应值的预设倍数作为第一阈值;确定响应值大于所述第一阈值的特征点,作为第一特征点;计算响应值小于或等于所述第一阈值的特征点中特征点与特征点之间的距离,将距离小于第二阈值对应的特征点作为第二特征点;将所述第一特征点和第二特征点作为所述图像的特征点。7.根据权利要求1至6中任一项所述的一种针对图像序列的图像拼接方法,其特征在于,所述步骤s2中所述对所述两帧图像的特征点进行匹配,得到所述两帧图像间的映射矩阵包括:s21、对每一个图像的特征点执行:以所述特征点为中心建立水平直角坐标系,并取所述特征点n*n邻域内的像素点;按照逆时针方向将所述坐标系每预设度数a划分为一个区域,将所述n*n邻域内的像素点划分成360/a个区域;统计每一区域中的每个像素点的梯度幅值并累加,得到累加幅度值;选取最大累加幅度值对应的区域的角度作为主方向;以所述特征点为中心,将所述坐标系旋转到与所述主方向一致的位置,并取所述像素点m*m邻域内的像素点;将所述n*n邻域内的像素点分成i*i个子区域;分别计算每个子区域的梯度信息,将所述i*i个子区域的梯度信息作为所述特征点的描述子;s22、计算其中一帧图像的每一个特征点与另一帧图像的每一个特征点之间的描述子的欧式距离,将所述描述子的欧式距离中最小距离与次最小距离的比值小于预设比值对应的两个特征点作为粗匹配点对;s23、根据所述粗匹配点对,随机取出两组点对,计算所述两组点对的映射矩阵;s24、选出所述粗匹配点对中的一组点,作为第一组点,根据所述映射矩阵计算所述第一组点映射后的第二组点;s25、计算所述第一组点与第二组点之间的残差,统计满足预设残差条件的点的个数;s26、判断满足残差条件的点的个数是否大于预设个数,若是,则所述映射矩阵为所述
两帧图像间的映射矩阵,否则,返回执行步骤s23。8.一种针对图像序列的图像拼接终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以上权利要求1-7任一的一种针对图像序列的图像拼接方法中的步骤。
技术总结
本发明公开一种针对图像序列的图像拼接方法及终端,获取具有重叠区域的两帧图像;分别提取所述两帧图像的特征点,对所述两帧图像的特征点进行匹配,得到所述两帧图像间的映射矩阵;根据所述映射矩阵,分别对两帧图像进行坐标变换,确定两帧图像的重叠区域;分别通过两次权重计算计算每一帧图像中重叠区域各个像素点的权重,根据所述权重,对两帧图像的重叠区域进行加权平均,得到拼接后的图像,图像融合过程中进行权重计算时是通过两次计算权重获得,并且进行融合是进行加权平均,能够对在拼接过程中有“洞”的图像进行光滑的、无缝的融合,改善了图像拼接效果,并重复该步骤,实现针对图像序列的图像拼接。针对图像序列的图像拼接。针对图像序列的图像拼接。
技术研发人员:陈兵 邹兴文
受保护的技术使用者:图码思(成都)科技有限公司
技术研发日:2019.06.26
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
