发明内容
为克服相关技术中存在的问题,本发明提供一种图像拼接方法及装置。
根据本发明实施例的第一方面,提供一种图像拼接方法,包括:
获取旋转摄像头连续拍摄的多张图像;
确定所述多张图像中待拼接的相邻图像,其中,所述相邻图像为拍摄空间重叠的两张图像;
对所述相邻图像进行图像配准,获得所述相邻图像的变换矩阵;
根据所述变换矩阵,将所述相邻图像进行图像融合,获得拼接图像;
对所述拼接图像进行弧形畸变校正,获得全景图像。
优选地,所述确定所述多张图像中待拼接的相邻图像之前,还包括:
对所述多张图像进行预处理,去除所述图像中的噪声。
优选地,所述对相邻图像进行图像配准,获得所述相邻图像的变换矩阵,包括:
对所述相邻图像提取sift特征,将所述sift特征形成特征集;
利用k-d tree和BBF算法对所述sift特征形成的特征集进行匹配,获得所述相邻图像的特征对;
利用RANSAC算法对所述特征对提纯,通过提纯的特征对,计算所述变换矩阵。
优选地,所述对所述拼接图像进行弧形畸变校正,包括:
获取所述拼接图像各列的像素点个数;
判断非中心列的像素点个数是否大于中心列的像素点个数;
若所述非中心列的像素点个数大于所述中心列的像素点个数,将所述非中心列的两端去除n个像素点,其中,n为所述非中心列的像素点个数与所述中心列的像素点个数之差。
优选地,所述对所述拼接图像进行弧形畸变校正,包括:
若所述非中心列的像素点个数小于所述中心列的像素点个数,确定需要插入的目标像素点个数,其中,所述目标像素点的个数为所述中心列的像素点个数与非中心列的像素点个数之差;
结合所述拼接图像,确定目标像素点的坐标;
根据所述目标像素点的坐标,通过双线性插值计算所述目标像素点的像素值;
将所述像素值插到所述目标像素点的坐标位置。
根据本发明实施例的第二方面,提供一种图像拼接装置,包括:
图像获取模块,用于获取旋转摄像头连续拍摄的多张图像;
相邻图像确定模块,用于确定所述多张图像中待拼接的相邻图像,其中,所述相邻图像为拍摄空间重叠的两张图像;
图像配准模块,用于对所述相邻图像进行图像配准,获得所述相邻图像的变换矩阵;
图像融合模块,用于根据所述变换矩阵,将所述相邻图像进行图像融合,获得拼接图像;
弧形畸变校正模块,用于对所述拼接图像进行弧形畸变校正,获得全景图像。
优选地,还包括:
预处理模块,用于对所述多张图像进行预处理,去除所述图像中的噪声。
优选地,所述图像配准模块包括:
特征提取单元,用于对所述相邻图像提取sift特征,将所述sift特征形成特征集;
特征匹配单元,用于利用k-d tree和BBF算法对所述sift特征形成的特征集进行匹配,获得所述相邻图像的特征对;
特征对提纯单元,用于利用RANSAC算法对所述特征对提纯,通过提纯的特征对,计算所述变换矩阵。
优选地,所述弧形畸变校正模块包括:
像素点个数获取单元,用于获取所述拼接图像各列的像素点个数;
判断单元,用于判断非中心列的像素点个数是否大于中心列的像素点个数;
校正单元,用于若所述非中心列的像素点个数大于所述中心列的像素点个数,将所述非中心列的两端去除n个像素点,其中,n为所述非中心列的像素点个数与所述中心列的像素点个数之差。
优选地,所述弧形畸变校正模块还包括:
目标像素点个数确定单元,用于若所述非中心列的像素点个数小于所述中心列的像素点个数,确定需要插入的目标像素点个数,其中,所述目标像素点的个数为所述中心列的像素点个数与非中心列的像素点个数之差;
目标像素点坐标确定单元,用于结合所述拼接图像,确定目标像素点的坐标;
双线性插值单元,用于根据所述目标像素点的坐标,通过双线性插值计算所述目标像素点的像素值;
像素值插入单元,用于将所述像素值插到所述目标像素点的坐标位置。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明实施例提供一种图像拼接方法及装置,包括:获取旋转摄像头连续拍摄的多张图像;确定所述多张图像中待拼接的相邻图像,其中,所述相邻图像为拍摄空间重叠的两张图像;对所述相邻图像进行图像配准,获得所述相邻图像的变换矩阵;根据所述变换矩阵,将所述相邻图像进行图像融合,获得拼接图像;对所述拼接图像进行弧形畸变校正,获得全景图像。本发明实施例提供的图像拼接方法,对于获取的旋转摄像头连续拍摄的图像,先确定待拼接图像的相邻图像,对相邻图像进行图像配准和图像融合,获得拼接图像,对拼接图像的弧形畸变进行校正,从而使获得的全景图像没有弧形畸变,视觉效果好。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本发明实施例提提供一种图像拼接方法,参见图1,包括:
S100:获取旋转摄像头连续拍摄的多张图像。
S200:确定所述多张图像中待拼接的相邻图像。
对步骤S100获取的多张图像确定待拼接图像,然后确定所述待拼接图像中的相邻图像,其中,所述相邻图像为拍摄空间重叠的两张图像。
在一种可选的实施方式中,步骤S200之前,还包括:
对所述多张图像进行预处理,去除所述图像中的噪声。
对所述多张图像进行预处理,主要指对图像的噪声点进行处理,去除所述图像中的噪声。在具体实施过程中,对所述多张图像进行中值滤波算法,去除所述图像中的噪声,使图像质量能够满足后续图像配准的要求。中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,它的核心算法是将图像中的所有像点的像素数据进行排序,如果图像中包含一个亮点(暗点)的噪声,在排序过程中亮点(暗点)的像素数据被排在数据序列的最右侧或者最左侧,而最终选择的像素数据是数据序列中间位置上的值,一般不是噪声点值,从而达到抑制噪声的目的。
S300:对所述相邻图像进行图像配准,获得所述相邻图像的变换矩阵。
图像配准主要指对所述相邻图像中的匹配信息进行提取,在提取出的信息中寻找最佳匹配,完成相邻图像间的对齐。图像拼接的成功与否主要是图像的配准。所述相邻图像之间,可能存在平移、旋转、缩放等多种变换或者大面积的同色区域等很难匹配的情况,一个好的图像配准算法应该能够在各种情况下准确找到图像间的对应信息,将图像对齐。
在本发明实施例中,对所述相邻图像进行图像配准,将所述相邻图像提取灰度变化明显的点、线、区域等特征形成特征集。然后在所述相邻图像对应的特征集中可能地将存在对应关系的特征对选择出来,获得所述相邻图像的变换矩阵,从而确定所述相邻图像的对应匹配关系。
在具体实施过程中,参见图2所示,步骤S300的具体实施方式包括以下步骤:
S310:对所述相邻图像提取sift特征,将所述sift特征形成特征集。
对所述相邻图像用sift算法提取sift特征,所述sift特征包括灰度变化明显的点、线和区域等,将灰度变化明显的点、线和区域等特征形成特征集。
S320:利用k-d tree和BBF算法对所述sift特征形成的特征集进行匹配,获得所述相邻图像的特征对。
在所述相邻图像对应的特征集中,利用k-d tree和BBF算法尽对所述相邻图像进行特征匹配查找,获得所述相邻图像的特征对,所述特征对包括所述相邻图像相匹配的点、线和区域等。
S330:利用RANSAC算法对所述特征对提纯,通过提纯的特征对,计算所述变换矩阵。
步骤S320中获得的所述相邻图像的特征对中会存在一些误配的特征对,这些误配的特征对可通过RANSAC算法进行去除。利用RANSAC算法剩余特征对为提纯后,将提纯后的特征对计算所述变换矩阵,确定所述相邻图像的对应匹配关系,从而实现所述相邻图像空间重叠区域各像素的配准。
S400:根据所述变换矩阵,将所述相邻图像进行图像融合,获得拼接图像。
根据步骤S300中获得的变换矩阵,将所述相邻图像进行图像融合。图像融合指在完成图像匹配以后,对图像进行缝合,并对缝合的边界进行平滑处理,让缝合自然过渡。由于任何两幅相邻图像在采集条件上都不可能做到完全相同,因此,对于一些本应该相同的图像特性,如图像的光照特性等,在两幅图像中不会表现的完全一样。图像拼接缝隙就是从一幅图像的图像区域过渡到另一幅图像的图像区域时,由于图像中的某些相关特性发生了跃变而产生的。图像融合就是为了让图像间的拼接缝隙不明显,拼接更自然。在具体实施过程中,对所述相邻图像空间重叠区域的像素值进行计算获得拼接图像所述区域的像素值,具体计算方法为,对所述相邻图像中的两幅图像的像素值取相同的权值,进行加权平均法获得融合图像该点的像素值。例如,所述相邻图像包括A图像和B图像,A图像和B图像重叠区域包括C像点,A图像C像点的像素值为p,B图像中C像点的像素值为q,A图像和B图像融合后的C像点的像素值为p×50%+q×50%。将所述相邻图像的空间重叠区域的所有像素点全按照加权平均法计算出融合后的像素值,进行图像融合后,获得拼接图像。
S500:对所述拼接图像进行弧形畸变校正,获得全景图像。
由于步骤S400融合后获得的拼接图像通常具有弧形畸变,需要对弧形畸变校正。
在具体实施过程中,参见图3所示,步骤S500的具体实施方式包括以下步骤:
S501:获取所述拼接图像各列的像素点个数。
计算所述拼接图像所有列的像素点个数。
S502:判断非中心列的像素点个数是否大于中心列的像素点个数。
找到所述拼接图像的中心列,以所述中心列像素为基准,判断非中心的像素点个数是否大于中心列的像素点个数。
S503:若所述非中心列的像素点个数大于所述中心列的像素点个数,将所述非中心列的两端去除n个像素点,其中,n为所述非中心列的像素点个数与所述中心列的像素点个数之差。
若所述非中心列的像素点个数大于所述中心列的像素点个数,将所述非中心列的两端去掉n个像素点,使所述非中心列的像素个数与所述中心列的个数相等。例如,中心列具有100个像素点,某一非中心列具有104个像素点,则在去除弧形畸变时,将所述非中心列的两端各去除2个像素点,去除后的非中心列的像素点个数与中心列的像素点个数相同。此时,所述非中心列的像素点个数与所述中心列的像素点个数相同,该列的畸变被校正。
在一种可选的实施方式中,参见图4所示,基于图3,步骤S500的具体实施方式还包括以下步骤:
S504:若所述非中心列的像素点个数小于所述中心列的像素点个数,确定需要插入的目标像素点个数,其中,所述目标像素点的个数为所述中心列的像素点个数与非中心列的像素点个数之差。
若所述非中心列的像素点个数小于所述中心列的像素点个数,以所述中心列的像素点个数为基准,确定需要插入的目标像素点个数,使插入目标像素点后,非中心列的像素点个数与中心列的像素点个数相同。因此,所述目标像素点的个数为所述中心列的像素点个数减去非中心列的像素点个数。例如,中心列的像素点个数为100,某一非中心列的像素点个数为97,计算得到需要插入的目标像素点的个数为3。
S505:结合所述拼接图像,确定目标像素点的坐标。
结合所述拼接图像,确定目标像素点在所述非中心的位置,即确定所述目标像素点的坐标。
S506:根据所述目标像素点的坐标,通过双线性插值计算所述目标像素点的像素值。
根据步骤S505确定的所述目标像素点的坐标,通过双线性插值计算所述目标像素点的像素值,即取最邻近目标像素点的四个像素点的像素值进行加权平均,从而获得所述目标像素点的像素。例如,目标像素点a的最邻近像素点的像素值分别为b、c、d和e,根据双线性差值,a点的像素值为b×25%+c×25%+d×25%+e×25%。
S507:将所述像素值插到所述目标像素点的坐标位置。
将步骤S506计算的像素值插到所述目标像素点的坐标位置,此时,所述非中心列的像素点个数与所述中心列的像素点个数相同,该列的畸变被校正。
本发明实施例提供一种图像拼接方法,包括:获取旋转摄像头连续拍摄的多张图像;确定所述多张图像中待拼接的相邻图像,其中,所述相邻图像为拍摄空间重叠的两张图像;对所述相邻图像进行图像配准,获得所述相邻图像的变换矩阵;根据所述变换矩阵,将所述相邻图像进行图像融合,获得拼接图像;对所述拼接图像进行弧形畸变校正,获得全景图像。本发明实施例提供的图像拼接方法,对于获取的旋转摄像头连续拍摄的图像,先确定待拼接图像的相邻图像,对相邻图像进行图像配准和图像融合,获得拼接图像,对拼接图像的弧形畸变进行校正,从而使获得的全景图像没有弧形畸变,视觉效果好。
基于相同的技术构思,本发明实施例还提供一种图像拼接装置,参见图5所示,包括:依次连接的图像获取模块100、相邻图像确定模块200、图像配准模块300、图像融合模块400和弧形畸变校正模块500。
所述图像获取模块100,用于获取旋转摄像头连续拍摄的多张图像。
所述相邻图像确定模块200,用于确定所述多张图像中待拼接的相邻图像,其中,所述相邻图像为拍摄空间重叠的两张图像。
所述图像配准模块300,用于对所述相邻图像进行图像配准,获得所述相邻图像的变换矩阵。
在本发明实施例中,所述图像配准模块包括:
特征提取单元,用于对所述相邻图像提取sift特征,将所述sift特征形成特征集;
特征匹配单元,用于利用k-d tree和BBF算法对所述sift特征形成的特征集进行匹配,获得所述相邻图像的特征对;
特征对提纯单元,用于利用RANSAC算法对所述特征对提纯,通过提纯的特征对,计算所述变换矩阵。
所述图像融合模块400,用于根据所述变换矩阵,将所述相邻图像进行图像融合,获得拼接图像。
所述弧形畸变校正模块500,用于对所述拼接图像进行弧形畸变校正,获得全景图像。
在具体实施过程中,所述弧形畸变校正模块包括:像素点个数获取单元、判断单元和校正单元。
所述像素点个数获取单元,用于获取所述拼接图像各列的像素点个数;
所述判断单元,用于判断非中心列的像素点个数是否大于中心列的像素点个数;
所述校正单元,用于若所述非中心列的像素点个数大于所述中心列的像素点个数,将所述非中心列的两端去除n个像素点,其中,n为所述非中心列的像素点个数与所述中心列的像素点个数之差。
在一种可选的实施方式中,所述弧形畸变校正模块还包括:目标像素点个数确定单元、目标像素点坐标确定单元、双线性插值单元和像素值插入单元。
所述目标像素点个数确定单元,用于若所述非中心列的像素点个数小于所述中心列的像素点个数,确定需要插入的目标像素点个数,其中,所述目标像素点的个数为所述中心列的像素点个数与非中心列的像素点个数之差;
所述目标像素点坐标确定单元,用于结合所述拼接图像,确定目标像素点的坐标;
所述双线性插值单元,用于根据所述目标像素点的坐标,通过双线性插值计算所述目标像素点的像素值;
所述像素值插入单元,用于将所述像素值插到所述目标像素点的坐标位置。
在一种可选的实施方式中,所述图像拼接装置还包括预处理模块。
所述预处理模块,用于对所述多张图像进行预处理,去除所述图像中的噪声。
本领域技术人员在考虑说明书及实践这里发明的公开后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。