本发明涉及终端技术领域,尤其涉及的是一种支持图像拼接的方法及终端。
背景技术:
随着智能手机的普及,对于智能手机照相、拍摄视频等功能的使用也越来越多,甚至已经逐渐取代了数码相机。由于智能手机的便携性,越来越多的人群习惯于用智能手机记录生活、工作中的点点滴滴。
手机上单个摄像头拍摄的角度和范围是有限的,相关技术中,通过单个摄像头平移获得多幅图像,然后将多幅图像拼接成“全景”图像。由于拍摄者在平移过程中的抖动,所以“全景”图像的拍摄效果并不好。另一方面,视频拍摄时还没有“全景”功能。
技术实现要素:
本发明实施例所要解决的技术问题是提供一种支持图像拼接的方法及终端,能够利用终端上的两个摄像头实现图像拼接,拍摄过程简单且图像拼接质量高。
本发明实施例提供一种支持图像拼接的方法,包括:
开启第一摄像头和第二摄像头进行拍摄并分别保存为第一图像和第二图像;其中,所述第一摄像头和第二摄像头的拍摄区域有重叠;
确定所述第一图像和所述第二图像之间的重叠区域;
以确定出的重叠区域为基准将所述第一图像和第二图像拼接在一起。
本发明实施例提供一种支持图像拼接的终端,包括:
图像拍摄模块,用于同时开启第一摄像头和第二摄像头进行拍摄并分别保存为第一图像和第二图像;其中,所述第一摄像头和第二摄像头的拍摄区域有重叠;
图像解析模块,用于确定所述第一图像和所述第二图像之间的重叠区域;
图像拼接模块,用于以确定出的重叠区域为基准将所述第一图像和第二图像拼接在一起。
与相关技术相比,本发明实施例提供的一种支持图像拼接的方法及终端,开启第一摄像头和第二摄像头进行拍摄并分别保存为第一图像和第二图像,其中,所述第一摄像头和第二摄像头的拍摄区域有重叠,确定所述第一图像和所述第二图像之间的重叠区域,以确定出的重叠区域为基准将所述第一图像和第二图像拼接在一起。本发明实施例能够利用终端上的两个摄像头实现图像拼接,拍摄过程简单且图像拼接质量高。
附图说明
图1为本发明实施例1的一种支持图像拼接的方法流程图;
图2为本发明实施例2的一种支持图像拼接的终端示意图;
图3为中值滤波算法的邻域示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例1
如图1所示,本发明实施例提供了一种支持图像拼接的方法,包括:
步骤S110,开启第一摄像头和第二摄像头进行拍摄并分别保存为第一图像和第二图像;其中,所述第一摄像头和第二摄像头的拍摄区域有重叠;
步骤S120,确定所述第一图像和所述第二图像之间的重叠区域;
步骤S130,以确定出的重叠区域为基准将所述第一图像和第二图像拼接在一起。
在本实施例中,所述第一摄像头位于终端的第一屏幕上,所述第二摄像头位于终端的第二屏幕上;所述第一屏幕和第二屏幕通过转轴相连构成可折叠双屏结构;
比如,所述第一摄像头位于所述第一屏幕的正面且所述第二摄像头位于所述第二屏幕的正面,或者所述第一摄像头位于所述第一屏幕的背面且所述第二摄像头位于所述第二屏幕的背面;
在本实施例中,所述开启第一摄像头和第二摄像头进行拍摄并分别保存为第一图像和第二图像,包括:
获取第一摄像头和第二摄像头的拍摄参数,将两个摄像头的拍摄参数调整为相同;
控制所述第一摄像头和第二摄像头同时开始拍摄;
拍摄完毕,控制所述第一摄像头和第二摄像头同时结束拍摄;
将所述第一摄像头和第二摄像头拍摄的照片类型的图像或视频类型的图像的每一帧按照原始像素格式保存;
其中,所述摄像头的拍摄参数包括以下参数的一种或多种:分辨率、曝光值、白平衡;
其中,图像属性至少包括:图像的长宽比例和图像的分辨率;
其中,所述原始像素格式包括:YUV格式或RGB格式;
其中,将两个摄像头的拍摄参数调整为相同能够使得第一摄像头拍摄的第一图像和第二摄像头拍摄的第二图像的图像属性一致;
在本实施例中,在开启第一摄像头和第二摄像头进行拍摄前,所述方法还包括:
通过重力感应器获取第一屏幕和第二屏幕的方向信息,计算两个屏幕的夹角;
根据两个屏幕的夹角判断两个摄像头的拍摄区域是否有重叠:当两个屏幕的夹角大于或等于第一阈值且小于或等于第二阈值时,判定两个摄像头的拍摄区域有重叠;
在一种实施方式中,当两个屏幕的夹角小于第一阈值或大于第二阈值时,判定两个摄像头的拍摄区域无重叠;如果检测到两个摄像头的拍摄区域无重叠,可以提示用户调整两个屏幕的夹角;
在本实施例中,确定所述第一图像和所述第二图像之间的重叠区域,包括:
当所述第一图像和第二图像是照片类型的图像时,利用图像匹配算法在所述第一图像中搜索出与第二图像近似的第一区域,在第二图像中搜索出与第一图像近似的第二区域,将所述第一区域和第二区域作为所述第一图像和所述第二图像之间的重叠区域;
当所述第一图像和第二图像是视频类型的图像时,按照帧序逐帧对比第一图像和第二图像,对每一帧第一图像和第二图像:利用图像匹配算法在所述第一图像中搜索出与第二图像近似的第一区域,在第二图像中搜索出与第一图像近似的第二区域,将所述第一区域和第二区域作为所述第一图像和所述第二图像之间的重叠区域;
在一种实施方式中,所述图像匹配算法包括:比值匹配法;
在一种实施方式中,当所述图像匹配算法是比值匹配法时,确定所述第一图像和所述第二图像之间的重叠区域,包括:
将第一图像作为参考图,将第二图像作为搜索图;
在所述参考图上沿水平方向扫描两列具有n列固定间隔的列像素,对每一对列像素:从两列像素中挑选行号相同的m行,将两列像素的m行对应像素的像素值比值作为元素,构建第一列向量;将所述参考图上沿水平方向扫描后形成的所有第一列向量构成参考图向量集合;所述m小于所述参考图的总行数;n大于或等于1;
在所述搜索图上沿水平方向扫描两列具有n列固定间隔的列像素,对每一对列像素:从两列像素中挑选行号相同的a行,所述a行像素的行号所构成的集合中包含所述第一列向量的m个行号;将两列像素的a行对应像素的像素值比值作为元素,构建第二列向量;由所述第二列向量派生出多个第三列向量,所述第三列向量是所述第二列向量中的任意连续b行元素构成的;将所述搜索图上沿水平方向扫描后形成的所有第三列向量构成搜索图向量集合;其中,b在数值上等于m;
将所述参考图向量集合中的每一个列向量与所述搜索图向量集合中的每一个列向量之间计算欧式距离,所述数值最小的欧氏距离对应的参考图向量集合中的第一列向量作为第一目标向量,所述数值最小的欧氏距离对应的搜索图向量集合中的第三列向量作为第二目标向量;
所述第一目标向量对应的m行作为第一图像与第二图像近似的第一区域的m行,生成所述第一目标向量的具有n列固定间隔的两列作为所述第一区域的起始列和结束列;所述第二目标向量对应的b行作为第二图像与第一图像近似的第二区域的b行,生成所述第二目标向量的具有n列固定间隔的两列作为所述第二区域的起始列和结束列;
所述第一区域和第二区域作为所述第一图像和所述第二图像之间的重叠区域。
上述算法中,假定参考图和搜索图垂直错开距离不超过a-m个像素,多取的a-m个像素可以解决图像垂直方向上的交错问题。
在其他的实施方式中,图像匹配算法也可以是基于特征值的图像匹配算法,比如:SIFT(Scale-invariant Feature Transform,尺度不变特征变换)算法、FAST(Features from Accelerated Segment Test,基于加速分割测试的特征)算法等;
在一种实施方式中,所述以确定出的重叠区域为基准将所述第一图像和第二图像拼接在一起,包括:
当所述第一图像和第二图像是照片类型的图像时,将所述第一图像的第一区域与所述第二图像的第二区域作为重叠区域进行拼接,使所述第一图像和所述第二图像合成为一副图像;
当所述第一图像和第二图像是视频类型的图像时,按照帧序逐帧对第一图像和第二图像进行图像拼接,每帧图像都拼接完毕后,按照帧序重新组合为视频;其中,对每一帧第一图像和第二图像进行图像拼接包括:将所述第一图像的第一区域与所述第二图像的第二区域作为重叠区域进行拼接,使所述第一图像和所述第二图像合成为一副图像;
在一种实施方式中,在确定所述第一图像和所述第二图像之间的重叠区域之前,所述方法还包括:采用第一滤波算法对第一图像和第二图像进行去噪处理;
其中,所述第一滤波算法包括:中值滤波;
在其他的实施方式中,除了中值滤波,也可以采用其他滤波方式来去除噪声、平滑毛刺,比如拉普拉斯算子滤波、高频提升滤波等。
在一种实施方式中,以确定出的重叠区域为基准将所述第一图像和第二图像拼接在一起之后,所述方法还包括:
采用第二滤波算法对所述第一图像和第二图像的拼接区域进行图像融合处理;
其中,所述第二滤波算法包括:中值滤波;
其中,中值滤波是对要滤波的区域中的每一个像素点,用所述像素点邻域内像素的平均值代替所述像素点原始的像素值;
可以采用以下公式(1-1)表示中值滤波的原理:
其中,g(x,y)代表一个M点区域s的中心像素点在滤波后的像素值,M=9,25,49…等。f(x,y)为所述区域s中每一个像素点的原始像素值。其中,区域s的示意图见附图3。其中,M可以根据需要进行取值。
在其他的实施方式中,除了中值滤波,也可以采用其他滤波方式来去除噪声、平滑毛刺,比如拉普拉斯算子滤波、高频提升滤波等。
实施例2
如图2所示,本发明实施例提供了一种支持图像拼接的终端,包括:
图像拍摄模块201,用于开启第一摄像头和第二摄像头进行拍摄并分别保存为第一图像和第二图像;其中,所述第一摄像头和第二摄像头的拍摄区域有重叠;
图像解析模块202,用于确定所述第一图像和所述第二图像之间的重叠区域;
图像拼接模块203,用于以确定出的重叠区域为基准将所述第一图像和第二图像拼接在一起;
在本实施例中,所述第一摄像头位于终端的第一屏幕上,所述第二摄像头位于终端的第二屏幕上;所述第一屏幕和第二屏幕通过转轴相连构成可折叠双屏结构;
比如,所述第一摄像头位于所述第一屏幕的正面且所述第二摄像头位于所述第二屏幕的正面,或者所述第一摄像头位于所述第一屏幕的背面且所述第二摄像头位于所述第二屏幕的背面;
在一种实施方式中,图像拍摄模块,用于采用以下方式开启第一摄像头和第二摄像头进行拍摄并分别保存为第一图像和第二图像:
获取第一摄像头和第二摄像头的拍摄参数,将两个摄像头的拍摄参数调整为相同;
控制所述第一摄像头和第二摄像头同时开始拍摄;
拍摄完毕,控制所述第一摄像头和第二摄像头同时结束拍摄;
将所述第一摄像头和第二摄像头拍摄的照片类型的图像或视频类型的图像的每一帧按照原始像素格式保存。
在一种实施方式中,图像解析模块,用于采用以下方式确定所述第一图像和所述第二图像之间的重叠区域:
当所述第一图像和第二图像是照片类型的图像时,利用图像匹配算法在所述第一图像中搜索出与第二图像近似的第一区域,在第二图像中搜索出与第一图像近似的第二区域,将所述第一区域和第二区域作为所述第一图像和所述第二图像之间的重叠区域;
当所述第一图像和第二图像是视频类型的图像时,按照帧序逐帧对比第一图像和第二图像,对每一帧第一图像和第二图像:利用图像匹配算法在所述第一图像中搜索出与第二图像近似的第一区域,在第二图像中搜索出与第一图像近似的第二区域,将所述第一区域和第二区域作为所述第一图像和所述第二图像之间的重叠区域。
在一种实施方式中,图像拼接模块,用于采用以下方式以确定出的重叠区域为基准将所述第一图像和第二图像拼接在一起:
当所述第一图像和第二图像是照片类型的图像时,将所述第一图像的第一区域与所述第二图像的第二区域作为重叠区域进行拼接,使所述第一图像和所述第二图像合成为一副图像;
当所述第一图像和第二图像是视频类型的图像时,按照帧序逐帧对第一图像和第二图像进行图像拼接,每帧图像都拼接完毕后,按照帧序重新组合为视频;其中,对每一帧第一图像和第二图像进行图像拼接包括:将所述第一图像的第一区域与所述第二图像的第二区域作为重叠区域进行拼接,使所述第一图像和所述第二图像合成为一副图像。
在一种实施方式中,图像解析模块,用于当所述图像匹配算法是比值匹配法时,采用以下方式确定所述第一图像和所述第二图像之间的重叠区域:
将第一图像作为参考图,将第二图像作为搜索图;
在所述参考图上沿水平方向扫描两列具有n列固定间隔的列像素,对每一对列像素:从两列像素中挑选行号相同的m行,将两列像素的m行对应像素的像素值比值作为元素,构建第一列向量;将所述参考图上沿水平方向扫描后形成的所有第一列向量构成参考图向量集合;所述m小于所述参考图的总行数;n大于或等于1;
在所述搜索图上沿水平方向扫描两列具有n列固定间隔的列像素,对每一对列像素:从两列像素中挑选行号相同的a行,所述a行像素的行号所构成的集合中包含所述第一列向量的m个行号;将两列像素的a行对应像素的像素值比值作为元素,构建第二列向量;由所述第二列向量派生出多个第三列向量,所述第三列向量是所述第二列向量中的任意连续b行元素构成的;将所述搜索图上沿水平方向扫描后形成的所有第三列向量构成搜索图向量集合;其中,b在数值上等于m;
将所述参考图向量集合中的每一个列向量与所述搜索图向量集合中的每一个列向量之间计算欧式距离,所述数值最小的欧氏距离对应的参考图向量集合中的第一列向量作为第一目标向量,所述数值最小的欧氏距离对应的搜索图向量集合中的第三列向量作为第二目标向量;
所述第一目标向量对应的m行作为第一图像与第二图像近似的第一区域的m行,生成所述第一目标向量的具有n列固定间隔的两列作为所述第一区域的起始列和结束列;所述第二目标向量对应的b行作为第二图像与第一图像近似的第二区域的b行,生成所述第二目标向量的具有n列固定间隔的两列作为所述第二区域的起始列和结束列;
所述第一区域和第二区域作为所述第一图像和所述第二图像之间的重叠区域。
上述算法中,假定参考图和搜索图垂直错开距离不超过a-m个像素,多取的a-m个像素可以解决图像垂直方向上的交错问题。
在一种实施方式中,图像拍摄模块,还用于在开启第一摄像头和第二摄像头进行拍摄之前,通过重力感应器获取第一屏幕和第二屏幕的方向信息,计算两个屏幕的夹角;根据两个屏幕的夹角判断两个摄像头的拍摄区域是否有重叠:当两个屏幕的夹角大于或等于第一阈值且小于或等于第二阈值时,判定两个摄像头的拍摄区域有重叠;
在一种实施方式中,图像拍摄模块,还用于当两个屏幕的夹角小于第一阈值或大于第二阈值时,判定两个摄像头的拍摄区域无重叠;如果检测到两个摄像头的拍摄区域无重叠,则可以提示用户调整两个屏幕的夹角。
在一种实施方式中,图像解析模块,还用于在确定所述第一图像和所述第二图像之间的重叠区域之前,采用第一滤波算法对第一图像和第二图像进行去噪处理;
其中,所述第一滤波算法包括:中值滤波;
在一种实施方式中,图像拼接模块,还用于以确定出的重叠区域为基准将所述第一图像和第二图像拼接在一起之后,采用第二滤波算法对所述第一图像和第二图像的拼接区域进行图像融合处理;
其中,所述第二滤波算法包括:中值滤波。
需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。