CN109509146B - 图像拼接方法及装置、存储介质 - Google Patents
图像拼接方法及装置、存储介质 Download PDFInfo
- Publication number
- CN109509146B CN109509146B CN201710831538.0A CN201710831538A CN109509146B CN 109509146 B CN109509146 B CN 109509146B CN 201710831538 A CN201710831538 A CN 201710831538A CN 109509146 B CN109509146 B CN 109509146B
- Authority
- CN
- China
- Prior art keywords
- image
- matrix
- transition
- overlapped
- overlapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 239000011159 matrix material Substances 0.000 claims abstract description 228
- 239000013598 vector Substances 0.000 claims abstract description 114
- 230000003287 optical effect Effects 0.000 claims abstract description 38
- 230000007704 transition Effects 0.000 claims description 147
- 238000013507 mapping Methods 0.000 claims description 119
- 230000004927 fusion Effects 0.000 claims description 62
- 230000008569 process Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 8
- 238000007499 fusion processing Methods 0.000 claims description 8
- 239000011248 coating agent Substances 0.000 claims 1
- 238000000576 coating method Methods 0.000 claims 1
- 230000003247 decreasing effect Effects 0.000 claims 1
- 238000002360 preparation method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 206010003591 Ataxia Diseases 0.000 description 1
- 206010010947 Coordination abnormal Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 208000016290 incoordination Diseases 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/156—Mixing image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/521—Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
- H04N2013/0077—Colour aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
- H04N2013/0085—Motion estimation from stereoscopic image signals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种图像拼接方法、装置及存储介质,该方法包括:获取第一重叠图像和第二重叠图像;所述第一重叠图像为第一图像中与第二图像重叠的区域,所述第二重叠图像为所述第二图像中与所述第一图像重叠的区域,所述第一图像和所述第二图像为待拼接的相邻图像;确定从所述第一重叠图像中每一像素点到所述第二重叠图像中相应像素点的运动矢量,得到光流矢量矩阵;根据所述光流矢量矩阵,对所述第一重叠图像进行重映射得到第一重映射图像以及对所述第二重叠图像进行重映射得到第二重映射图像;对所述第一重映射图像和所述第二重映射图像进行融合,得到所述第一重叠图像和所述第二重叠图像的融合图像。
Description
技术领域
本申请涉及图像处理技术领域,尤其是涉及一种图像拼接方法、一种图像拼接装置和一种存储介质。
背景技术
360度全景视频因其能提供给用户区别于传统有限视野视频更为逼真的沉浸观看体验,所以逐渐成为虚拟现实领域主要的内容之一。由于目前采集全景视频的单镜头系统比较少,一般都是由多个相机或多个镜头系统采集的视频拼接而成。
申请内容
本申请提供了以下技术方案,能够改善图像拼缝处经常出现的断裂、不协调问题,改善拼接图像的质量。
一方面,本申请实例提供一种图像拼接方法,包括:
获取第一重叠图像和第二重叠图像;其中,所述第一重叠图像为第一图像中与第二图像重叠的区域,所述第二重叠图像为所述第二图像中与所述第一图像重叠的区域,所述第一图像和所述第二图像为待拼接的相邻图像;
确定从所述第一重叠图像中每一像素点到所述第二重叠图像中相应像素点的运动矢量,得到光流矢量矩阵;
根据所述光流矢量矩阵,对所述第一重叠图像进行重映射得到第一重映射图像以及对所述第二重叠图像进行重映射得到第二重映射图像;
对所述第一重映射图像和所述第二重映射图像进行融合,得到所述第一重叠图像和所述第二重叠图像的融合图像。
另一方面,本申请实例提供一种图像拼接装置,包括:
获取模块,获取第一重叠图像和第二重叠图像;其中,所述第一重叠图像为第一图像中与第二图像重叠的区域,所述第二重叠图像为所述第二图像中与所述第一图像重叠的区域,所述第一图像和所述第二图像为待拼接的相邻图像;
确定模块,确定从所述第一重叠图像中每一像素点到所述第二重叠图像中相应像素点的运动矢量,得到光流矢量矩阵;
重映射模块,根据所述光流矢量矩阵,对所述第一重叠图像进行重映射得到第一重映射图像以及对所述第二重叠图像进行重映射得到第二重映射图像;
融合模块,对所述第一重映射图像和所述第二重映射图像进行融合,得到所述第一重叠图像和所述第二重叠图像的融合图像。
在一些实例中,确定模块还可以确定从所述第一重叠图像到所述第二重叠图像的过渡权值矩阵;其中,重映射模块可以根据所述光流矢量矩阵和所述过渡权值矩阵,对所述第一重叠图像进行重映射得到第一重映射图像以及对所述第二重叠图像进行重映射得到第二重映射图像。
在一些实例中,确定模块确定从所述第一重叠图像到所述第二重叠图像的过渡权值矩阵的过程包括:确定所述第一重叠图像和所述第二重叠图像的重叠矩阵;其中,所述第一重叠图像和所述第二重叠图像共同有效部分的像素在所述重叠矩阵中对应位置处的元素的大小为第一预设值,其他部分的像素在所述重叠矩阵中对应位置处的元素的大小为不同于所述第一预设值的第二预设值;确定所述重叠矩阵中每一行中所述第一预设值的元素的列坐标范围;根据所述列坐标范围以及该行中每一元素的列坐标,确定该元素的过渡权值,并将所述重叠矩阵中各个元素的过渡权值形成所述过渡权值矩阵。
在一些实例中,确定模块可以采用下式确定所述重叠矩阵中第i行第j列的元素的过渡权值:
Weight1(i,j)=(end_i-j)/(end_i-start_i)
式中,Weight1(i,j)为所述重叠矩阵中第i行第j列的元素的过渡权值,start_i为所述重叠矩阵中第i行中所述列坐标范围中的最小列坐标;end_i为所述重叠矩阵中第i行中为所述列坐标范围中的最大列坐标。
在一些实例中,重映射模块对所述第一重叠图像进行重映射得到第一重映射图像以及对所述第二重叠图像进行重映射得到第二重映射图像的过程可以包括:根据所述光流矩阵和所述过渡权值矩阵,确定第一过渡映射矩阵和第二过渡映射矩阵;其中,所述第一过渡映射矩阵为从所述第一重叠图像至所述第二重叠图像的过渡映射矩阵,所述第二过渡映射矩阵为从所述第二重叠图像至所述第一重叠图像的过渡映射矩阵;利用所述第一过渡映射矩阵,对所述第一重叠图像进行重映射,得到所述第一重映射图像;以及,利用所述第二过渡映射矩阵,对所述第二重叠图像进行重映射,得到所述第二重映射图像。
在一些实例中,重映射模块确定第一过渡映射矩阵的方法可以包括:
若Weight1(i,j)=0,则采用下式确定所述第一过渡映射矩阵中第i行第j列的元素:
否则,采用下式确定所述第一过渡映射矩阵中第i行第j列的元素:
上式中,Weight1(i,j)为所述过渡权值矩阵中的第i行第j列的元素的大小;Warp1(i,j)为所述第一过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp1(i,j).x为所述映射矢量在水平方向上的分量;Warp1(i,j).y为所述映射矢量在垂直方向上的分量;flow(i,j)为所述光流矩阵中第i行第j列元素代表的运动矢量;flow(i,j).y为所述运动矢量在垂直方向上的分量;flow(i,j).x为所述运动矢量在水平方向上的分量。
在一些实例中,重映射模块可以采用下式确定所述第一重映射图像中第i行第j列像素的颜色值:
overlap_left_dst(i,j)=overlap_left_src(ii,jj)
上式中,overlap_left_dst(i,j)为所述第一重映射图像中第i行第j列像素的颜色值;overlap_left_src(ii,jj)为所述第一重叠图像中第ii行第jj列像素的颜色值;ii=Warp1(i,j).y,jj=Warp1(i,j).x,Warp1(i,j)为所述第一过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp1(i,j).x为所述映射矢量在水平方向上的分量;Warp1(i,j).y为所述映射矢量在垂直方向上的分量。
在一些实例中,重映射模块确定第二过渡映射矩阵的方法可以包括:
若Weight1(i,j)=0,则采用下式确定所述第二过渡映射矩阵中第i行第j列的元素:
否则,采用下式确定所述第二过渡映射矩阵中第i行第j列的元素:
上式中,Weight1(i,j)为所述过渡权值矩阵中的第i行第j列的元素的大小;Warp2(i,j)为所述第二过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp2(i,j).x为所述映射矢量在水平方向上的分量;Warp2(i,j).y为所述映射矢量在垂直方向上的分量;flow(i,j)为所述光流矩阵中第i行第j列元素代表的运动矢量;flow(i,j).y为所述运动矢量在垂直方向上的分量;flow(i,j).x为所述运动矢量在水平方向上的分量。
在一些实例中,重映射模块可以采用下式确定所述第二重映射图像中第i行第j列像素的颜色值:
overlap_right_dst(i,j)=overlap_right_src(ii,jj)
式中,overlap_right_dst(i,j)为所述第二重映射图像中第i行第j列像素的颜色值,overlap_right_src(ii,jj)为所述第二重映射图像中第ii行第jj列像素的颜色值;ii=Warp2(i,j).y,jj=Warp2(i,j).x,Warp2(i,j)为所述第二过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp2(i,j).x为所述映射矢量在水平方向上的分量;Warp2(i,j).y为所述映射矢量在垂直方向上的分量。
在一些实例中,确定模块还可以根据所述重叠矩阵中每一元素的过渡权值与预设阈值的关系,确定对应元素的融合权值,并将所述重叠矩阵中各个元素的融合权值形成融合权值矩阵;其中,融合模块可以利用所述融合权值矩阵,将所述第一重映射图像和所述第二重映射图像进行融合。
在一些实例中,确定模块确定对应元素的融合权值的过程可以包括:若该元素的过渡权值大于预设阈值,则该元素对应的融合权值为1;否则,该元素对应的融合权值为0。
在一些实例中,融合模块将所述第一重映射图像和所述第二重映射图像进行融合的过程可以包括:分别建立所述第一重映射图像和所述第二重映射图像的拉普拉斯金字塔,并建立所述融合权值矩阵的高斯金字塔;利用所述高斯金字塔,对所述第一重映射图像的拉普拉斯金字塔和所述第二重映射图像的拉普拉斯金字塔进行融合,得到融合金字塔;将所述融合金字塔进行图像还原,得到所述融合图像。
在一些实例中,融合模块可以采用下式确定对所述第一重映射图像和所述第二重映射图像的拉普拉斯金字塔中的第level层中的第i行第j列的像素进行融合:
Result_dst_LS(i,j,level)=overlap_left_dst_LS(i,j,level)*Weight2_GR(i,j,level)+overlap_right_dst_LS(i,j,level)*(1-Weight2_GR(i,j,level))
式中,Result_dst_LS(i,j,level)为所述融合金字塔的第level层第i行第j列像素的颜色值;overlap_left_dst_LS(i,j,level)为所述第一重映射图像的拉普拉斯金字塔的第level层第i行第j列像素的颜色值;overlap_right_dst_LS(i,j,level)为所述第二重映射图像的拉普拉斯金字塔的第level层第i行第j列像素的颜色值;Weight2_GR(i,j,level)为所述高斯金字塔的第level层第i行第j列元素的大小。
又一方面,本申请实例提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
基于以上技术方案,由于在对图像融合之前,采用光流矢量矩阵对第一重叠图像和第二重叠图像进行重映射,使得重叠区域的像素逐个对齐,因此可以改善图像拼缝处经常出现的断裂、不协调等问题,改善拼接图像的质量。
附图说明
为了更清楚地说明本申请实例或现有技术中的技术方案,下面将对实例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实例涉及的系统架构的示意图;
图2是本申请一个实例中图像拼接方法的流程示意图;
图3a是本申请一实例中待拼接的第一图像和第二图像的灰度示意图;
图3b是本申请一实例中第一重叠图像的灰度示意图;
图3c是本申请一实例中第二重叠图像的灰度示意图;
图3d是本申请一实例中融合图像的灰度示意图;
图3e是采用现有技术进行拼接得到的融合图像的灰度示意图;
图4是本申请一实例中光流矢量矩阵对应的灰度示意图;
图5是本申请一实例中第一图像、第二图像的边界示意图;
图6是本申请一实例中重叠矩阵对应的示意图;
图7a是本申请一实例中过渡权值矩阵对应的示意图;
图7b是本申请一实例中融合权值矩阵对应的示意图;
图8是本申请一实例中图像拼接装置的结构框图;
图9是本申请一实例中计算机设备的结构框图。
具体实施方式
下面将结合本申请实例中的附图,对本申请实例中的技术方案进行清楚、完整地描述,显然,所描述的实例仅是本申请一部分实例,而不是全部的实例。基于本申请中的实例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本申请保护的范围。
一方面,本申请提出了一种图像拼接方法,该方法适用的系统架构如图1所示。该系统包括:终端设备100和服务器200,终端设备100和服务器200之间可以通过通信网络300连接,其中:
上述终端设备100可以是用户的智能手机或电脑,还可以是相机、镜头系统等,其上安装有各种应用软件的客户端软件,用户可以通过上述这些客户端软件登录并使用这些客户端软件,例如,可进行图像拼接的客户端。
上述服务器200可以是一台服务器,也可以是服务器集群,与终端设备100上安装的客户端相对应,可以为终端设备提供相应的图像拼接服务。
上述通信网络300可以局域网(Local Area Network,LAN)、城域网(MetropolitanArea Network,MAN)、广域网(Wide Area Network,WAN)、移动网络、有线网络或者无线网络、专用网络等。
本申请实例提供的方法可以由上述服务器200执行,具体为:用户可以在终端设备中将待拼接的图像导入可进行图像拼接的客户端,服务器从客户端上获取到这些图像,然后进行拼接并将拼接好的图像返回给客户端,这样用户就可以得到拼接好的图像。
当然,本申请提供的方法不仅可以在服务器200上执行,也可以在终端设备100上执行,只要终端设备100上存储有图像拼接方法对应的计算机程序,而且终端设备可以运行这些计算机程序即可。在这种情况下,终端设备不必与服务器处于连接状态,即终端设备不必处于联网状态。
由此可见,本申请实例提供的方法可以由存储有图像拼接方法对应的计算机程序的服务器在后台执行,也可以由存储有图像拼接方法对应的计算机程序的终端设备离线执行,不论由何种硬件设备执行,均落入本申请的保护范围之内。
如图2所示,本申请实例提供的图像拼接方法可以主要包括:
S101、获取第一重叠图像和第二重叠图像;所述第一重叠图像为第一图像中与第二图像重叠的区域,所述第二重叠图像为所述第二图像中与所述第一图像重叠的区域,所述第一图像和所述第二图像为待拼接的相邻图像;
可理解的是,在全景图像或视频拼接过程中,多个相机或多个镜头系统采集的多张图像之间是有重叠部分的,也就是说,对于相邻的两张图像来说,有一部分是重叠的,在第一图像中重叠的部分是第一重叠图像,在第二图像中重叠的部分是第二重叠图像。
第一图像和第二图像的拼接方式可以是左右拼接,也可以是上下拼接。当两张图像为左右拼接时,假设第一图像为位于左侧的图像,第二图像为右侧的图像,则第一重叠图像为第一图像的右侧部分,而第二重叠图像为第二图像的左侧部分。当两张图像为上下拼接时,假设第一图像为位于上侧的图像,第二图像为位于下侧的图像,则第一重叠图像为第一图像的下侧部分,而第二重叠图像为第二图像的上侧部分。如图3a所示,上侧的图像201为第一图像,下侧的图像202为第二图像,第一图像中位于矩形框203内的部分为第一重叠图像,第二图像中位于矩形框内的部分为第二重叠图像。从图3a中可以看出,第一重叠图像和第二重叠图像的大小是相同的。
在实际应用时,可以将第一图像和第二图像进行全景投影变换,即可以得到第一重叠图像和第二重叠图像。
S102、确定从所述第一重叠图像中每一像素点到所述第二重叠图像中相应像素点的运动矢量,得到光流矢量矩阵;
上述运动矢量,是一个二维矢量,包括水平方向上的分量和垂直方向上的分量。某一像素,在第一重叠图像中的位置和在第二重叠图像中的位置可能不同,也就是说,位置发生了变化,这个像素在x方向上的变化和在y方向上的变化构成了该像素的运动矢量;第一重叠图像中的各个像素的运动矢量形成了光流矢量矩阵。
具体计算运动矢量的具体过程可以包括:
S1021、确定在所述第二重叠图像中,与所述第一重叠图像的每一像素点相对应的像素点的坐标;
对于第一重叠图像中的某一像素,确定在第二重叠图像中对应像素的坐标的方式有很多种,其中一种方式为:确定以第一重叠图像中的该像素(i,j)为中心的一个区域(例如一个矩形区域)内所有像素在每一个颜色通道上的颜色值之和,然后确定以在第二重叠图像中相同位置的像素(i,j)为中心确定一个寻找区域,针对该寻找区域内的每一个像素,计算以该像素为中心的一个区域(例如,一个矩形区域)内所有像素在每一个颜色通道上的颜色值之和,然后将该每一个颜色通道上的颜色值之和与第一重叠图像中的像素(i,j)在每一个颜色通道上的颜色值之和做差,将差值最小的像素作为第二重叠图像中与第一重叠图像中的像素(i,j)相对应的像素。当然,还可以有其他的方式确定第二重叠图像中与第一重叠图像中像素相对应的像素。
S1022、根据所述第一重叠图像中该像素点的坐标和所述第二重叠图像中相对应的像素点的坐标,确定对应的运动矢量。
假设在第一重叠图像中像素(i,j)与第二重叠图像中像素(ii,jj)相对应,因此flow(i,j).x=jj-j,flow(i,j).y=ii-i,flow(i,j)=(flow(i,j).x,flow(i,j).y)。其中,flow(i,j)为第一重叠图像中像素(i,j)的运动矢量,flow(i,j).x为运动矢量在水平方向上的分量,flow(i,j).y为垂直方向上的分量。如图4所示,为从第一重叠图像至第二重叠图像的光流矢量矩阵的灰度示意图。其中为白色部分的像素,运动矢量为(0,0),即没有发生位移,其他颜色部分的像素,发生了位移,不同的颜色代表不同的运动矢量即不同的位移大小。
S103、根据所述光流矢量矩阵,对所述第一重叠图像进行重映射得到第一重映射图像以及对所述第二重叠图像进行重映射得到第二重映射图像;
如图3b和3c所示,图3b为对图3a中的第一重叠图像进行重映射后得到的第一重映射图像,图3c为对图3a中的第二重叠图像进行重映射后得到的第二重映射图像。
由于光流矢量矩阵可以体现第一重叠图像与第二重叠图像之间的差异,因此可以根据光流矢量矩阵,可以实现第一重叠图像中的每一个像素与第二重叠图像中对应像素之间的对齐。这里,根据光流矢量矩阵,对第一重叠图像和第二重叠图像进行重映射的过程,实际上是对像素进行对齐的过程。
S104、对所述第一重映射图像和所述第二重映射图像进行融合,得到所述第一重叠图像和所述第二重叠图像的融合图像。
这里,将第一重映射图像和第二重映射图像进行融合之后,便可以得到第一重叠图像和第二重叠图像的融合图像,然后将该融合图像与第一图像和第二图像中的非重叠部分共同构成第一图像和第二图像的拼接图像,实现两张图像的拼接。当然,还可以采用其他的方式获得第一图像和第二图像的拼接图像,例如,用第一重映射图像替换第一图像中的第一重叠图像,用第二重映射图像替换第二图像中的第二重叠图像,然后对替换后的第一图像和第二图像进行融合,便可以得到第一图像和第二图像的拼接图像。也就是说,上述图像拼接方法还可以包括:将所述第一重映射图像替换所述第一图像中的所述第一重叠图像,将所述第二重映射图像替换所述第二图像中的所述第二重叠图像;这样步骤S104的具体过程可以包括:将所述第一图像和第二图像进行融合,从而得到第一图像和第二图像的拼接图像。在第一图像和第二图像进行融合的过程,实际上是第一图像中的所述第一重映射图像和所述第二图像中的第二重映射图像进行融合的过程。
本申请实例提供的图像拼接方法,由于在对图像融合之前,采用光流矢量矩阵对第一重叠图像和第二重叠图像进行重映射,使得重叠区域的像素逐个对齐,因此可以改善图像拼缝处经常出现的断裂、不协调等问题,很适合应用于全景视频直播。如图3d所示,图3d中左侧为对图3b和图3c进行融合之后得到的融合图像,图3d中右侧为融合图像中虚线框区域的放大示意图。如图3e所示,图3e中右侧为未采用光流矢量矩阵进行重映射而直接进行融合后得到的融合图像,图3e中左侧为该融合图像中虚线框区域的放大示意图,在图3e中拼缝部分出现了明显的断裂,然而在图3d中,拼缝部分没有出现断裂等问题。可见,在融合之前,采用光流矢量矩阵对重叠图像进行重映射是解决断裂等问题的有效方法。
在一些实例中,为了实现对拼接过程中第一重叠图像到第二重叠图像的过渡变化进行控制,在执行S103之前,本申请实例提供的方法还可以包括:
确定从所述第一重叠图像到所述第二重叠图像的过渡权值矩阵;
这样,步骤S103可以具体包括:根据所述过渡权值矩阵和所述光流矢量矩阵,对所述第一重叠图像进行重映射得到第一重映射图像以及对所述第二重叠图像进行重映射得到第二重映射图像。
在上述过程中,确定过渡权值矩阵的方式有多种,下面介绍其中一种方式:
S201、确定所述第一重叠图像和所述第二重叠图像的重叠矩阵;其中,所述第一重叠图像和所述第二重叠图像共同有效部分的像素在所述重叠矩阵中对应位置处的元素的值为第一预设值,其他部分的像素在所述重叠矩阵中对应位置处的元素的值为不同于所述第一预设值的第二预设值;
由于在实际拍摄图像时,拍摄得到的图像并非是真正的矩形,参见图5,图5为图3a中第一图像和第二图像的边界示意图,从图中可以看出,第一图像和第二图像的左右两侧以及下侧均有弧形的凹陷,这是由于相机或镜头的结构所造成的。对于第一重叠图像来说,凹陷位于右侧,对于第二重叠图像来说,凹陷位于左侧,而且第一重叠图像和第二重叠图像的下侧也均有部分的凹陷,这些凹陷的部分上是没有任何实际图像内容的,因此是无效的部分。因此该步骤中的有效是指有实际图像内容,而无效是指没有实际图像内容。
由于在重叠矩阵中,要体现第一重叠图像和第二重叠图像的共同有效部分,也要体现第一重叠图像和第二重叠图像其他部分,因此重叠矩阵与第一重叠图像、第二重叠图像的大小是相同的,也就是说,重叠矩阵中元素的个数与第一重叠矩阵、第二重叠矩阵中像素的个数均是相同的。
上述第一预设值和第二预设值可以根据需要自行设置,例如,将第一预设值设置为255,第二预设值设为0,这样的话,如果将重叠矩阵转换为图像的话,与第二重叠图像和第二重叠图像共同有效部分对应的部分是白色的,而其他部分为黑色的,如图6所示。
S202、确定所述重叠矩阵中每一行中所述第一预设值的元素的列坐标范围;
以图6示出图像对应的重叠矩阵为例,对列坐标范围的确定过程进行举例:
重叠矩阵用overlap表示,对于重叠矩阵overlap的第i行来说,对列坐标范围的最小列坐标start_i以及最大列坐标end_i进行初始化:start_i=W-1;end_i=0,其中W为重叠矩阵的宽度。
对于第i行来说,从j=0开始,进行以下操作,直至j=W-1:
如果overlap(i,j)=255,则判断对应的j是否小于start_i;若是,则start_i=j;否则,保持start_i不变。然后判断对应的j是否大于end_i,若是,则end_i=j,否则保持end_i不变。
当对第i行中的每一个元素遍历完之后,得到最终的start_i和end_i,此时的start_i为第i行中第一预设值的元素的最小列坐标,end_i为第i行中第一预设值的元素的最大列坐标。
对于overlap的每一行来说,均对start_i、end_i进行初始化,并进行遍历,得到每一行中第一预设值的元素的列坐标范围。其中,i从0遍历到H-1,H为重叠矩阵overlap的高度。
S203、根据所述列坐标范围以及该行中每一元素的列坐标,计算该元素的过渡权值,并将所述重叠矩阵中各个元素的过渡权值形成所述过渡权值矩阵。
根据重叠矩阵的各行中第一预设值的元素的列坐标范围,确定每个元素的过渡权值的方式有多种,其中一种方式可以为:采用下式计算所述重叠矩阵中第i行第j列的元素的过渡权值即过渡权值矩阵中第i行第j列元素的大小:
Weight1(i,j)=(end_i-j)/(end_i-start_i) (1)
式中,Weight1(i,j)为所述重叠矩阵中第i行第j列的元素的过渡权值,start_i为所述重叠矩阵中第i行中所述列坐标范围中的最小列坐标;end_i为所述重叠矩阵中第i行中值为所述列坐标范围中的最大列坐标。
对于重叠矩阵中的每个元素(包括第一重叠图像和第二重叠图像共同有效部分对应的元素,也包括其他部分对应的元素)均采用上式(1)进行遍历,得到对应的过渡权值。在利用上式(1)进行计算的过程中,有可能出现某个过渡权值大于1或小于0的情况,当出现大于1的情况时,可以令该大于1的过渡权值为1;当出现小于0的情况时,可以令该小于0的过渡权值为0,从而保持过渡权值矩阵中的每个元素均在0~1的范围内。如图6所示,为过渡权值矩阵的示意图,可见在该过渡权值矩阵中,从左至右,由白变黑,也就是说,过渡权值矩阵中各列元素的大小从大逐渐变小。
这里,先计算过渡权值矩阵,然后利用过渡权值矩阵和光流矢量矩阵对重叠图像进行重映射,相对于未采用过渡权值矩阵的方式可以使图像平滑过渡,进一步提高拼接图像的质量。
在一些实例中,根据过渡权值矩阵和光流矢量矩阵,对第一重叠图像和第二重叠图像进行重映射的过程可以包括:
S1031、根据所述光流矩阵和所述过渡权值矩阵,计算第一过渡映射矩阵和第二过渡映射矩阵;其中,所述第一过渡映射矩阵为从所述第一重叠图像至所述第二重叠图像的过渡映射矩阵,所述第二过渡映射矩阵为从所述第二重叠图像至所述第一重叠图像的过渡映射矩阵;
在具体实施时,可以采用以下方式计算第一过渡映射矩阵:
若Weight1(i,j)=0,则采用下式(2)计算所述第一过渡映射矩阵中第i行第j列的元素:
否则,采用下式(3)计算所述第一过渡映射矩阵中第i行第j列的元素:
上式(2)和(3)中,Weight1(i,j)为所述过渡权值矩阵中的第i行第j列的元素的大小;Warp1(i,j)为所述第一过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp1(i,j).x为所述映射矢量在水平方向上的分量;Warp1(i,j).y为所述映射矢量在垂直方向上的分量;flow(i,j)为所述光流矩阵中第i行第j列元素代表的运动矢量;flow(i,j).y为所述运动矢量在垂直方向上的分量;flow(i,j).x为所述运动矢量在水平方向上的分量。
类似的,可以采用以下方式计算第二过渡映射矩阵:
若Weight1(i,j)=0,则采用下式(4)和(5)计算所述第二过渡映射矩阵中第i行第j列的元素:
否则,采用下式计算所述第二过渡映射矩阵中第i行第j列的元素:
上式(4)和(5)中,Warp2(i,j)为所述第二过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp2(i,j).x为所述映射矢量在水平方向上的分量;Warp2(i,j).y为所述映射矢量在垂直方向上的分量。
S1032、利用所述第一过渡映射矩阵,对所述第一重叠图像进行重映射,得到所述第一重映射图像;以及,利用所述第二过渡映射矩阵,对所述第二重叠图像进行重映射,得到所述第二重映射图像。
重映射至图像的过程实际上是求重映射图像中各个像素的颜色值的过程,在具体实施时可以采用以下公式(6)计算第一重映射图像中第i行第j列像素的颜色值:
overlap_left_dst(i,j)=overlap_left_src(ii,jj) (6)
上式中,overlap_left_dst(i,j)为所述第一重映射图像中第i行第j列像素的颜色值;overlap_left_src(ii,jj)为所述第一重叠图像中第ii行第jj列像素的颜色值;ii=Warp1(i,j).y,jj=Warp1(i,j).x,Warp1(i,j)为所述第一过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp1(i,j).x为所述映射矢量在水平方向上的分量;Warp1(i,j).y为所述映射矢量在垂直方向上的分量。
类似的,可以采用以下公式(7)计算第二重映射图像中第i行第j列像素的颜色值:
overlap_right_dst(i,j)=overlap_right_src(ii,jj) (7)
式中,overlap_right_dst(i,j)为所述第二重映射图像中第i行第j列像素的颜色值,overlap_right_src(ii,jj)为所述第二重映射图像中第ii行第jj列像素的颜色值;ii=Warp2(i,j).y,jj=Warp2(i,j).x,Warp2(i,j)为所述第二过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp2(i,j).x为所述映射矢量在水平方向上的分量;Warp2(i,j).y为所述映射矢量在垂直方向上的分量。
这里,首先计算过渡映射矩阵,然后利用过渡映射矩阵对重叠图像进行重映射,通过这种方法实现重叠图像进行重映射,方法简单、易实现。
在一些实例中,步骤S104进行融合的过程有多种方式可以参照常用的图像融合技术即可,当然也可以参照以下融合方式实现图像拼接:
S1041、根据所述重叠矩阵中每一元素的过渡权值与预设阈值的关系,确定对应元素的融合权值,并将所述重叠矩阵中各个元素的融合权值形成融合权值矩阵;
上述预设阈值,可以根据需要选择,对此本申请实例不做限定。
融合权值的具体确定过程可以包括:若该元素的过渡权值大于预设阈值,则该元素对应的融合权值为1;否则,该元素对应的融合权值为0。
下面以预设阈值为0.5为例对该步骤进行说明:
所述重叠矩阵中每一元素的过渡权值也是过渡权值矩阵中对应元素的大小,对于Weight1(i,j)来说,如果Weight1(i,j)大于0.5,则Weight2(i,j)为1,否则Weight2(i,j)为0。可见,得到的融合权值矩阵中的元素的大小不是1,就是0。
如图7a所示,为过渡权值矩阵的示意图,从左到右,图像颜色逐渐变深。如图7b所示,为融合权值矩阵的示意图,可见图像中只有黑和白,没有过渡色。
S1042、利用所述融合权值矩阵,将所述第一重映射图像和所述第二重映射图像进行融合。
具体进行融合过程中,可以采用多尺度融合(multiresolution blending),具体的融合过程可以包括:
S10421、分别建立所述第一重映射图像和所述第二重映射图像的拉普拉斯金字塔,并建立所述融合权值矩阵的高斯金字塔;
拉普拉斯金字塔和高斯金字塔均是一种多尺度表达的方式,不同点在于,拉普拉斯金字塔可以在融合过程中保留更多的细节,而高斯金字塔可以在融合过程中对拼缝进行模糊化,也就是说,在高频部分用小融合区,在低频部分用大融合区,能够在消除拼缝的同时最大限度的保留图像原有的细节信息。
S10422、利用所述高斯金字塔,对所述第一重映射图像的拉普拉斯金字塔和所述第二重映射图像的拉普拉斯金字塔进行融合,得到融合金字塔;
由于高斯金字塔和拉普拉斯金字塔均有多层,可以采用下式(8)计算对所述第一重映射图像和所述第二重映射图像的拉普拉斯金字塔中的第level层中的第i行第j列的像素进行融合:
Result_dst_LS(i,j,level)=overlap_left_dst_LS(i,j,level)*Weight2_GR(i,j,level)+overlap_right_dst_LS(i,j,level)*(1-Weight2_GR(i,j,level)) (8)
式中,Result_dst_LS(i,j,level)为所述融合金字塔的第level层第i行第j列像素的颜色值;overlap_left_dst_LS(i,j,level)为所述第一重映射图像的拉普拉斯金字塔的第level层第i行第j列像素的颜色值;overlap_right_dst_LS(i,j,level)为所述第二重映射图像的拉普拉斯金字塔的第level层第i行第j列像素的颜色值;Weight2_GR(i,j,level)为所述高斯金字塔的第level层第i行第j列元素的大小。
对于拉普拉斯金字塔中的每一层中的每一个像素均可以采用上述公式(8)计算,最后得到一个融合金字塔。
S10423、将所述融合金字塔进行图像还原,得到所述融合图像。
这里的还原,是指将图像金字塔还原为图像的过程,与之前根据第一重映射图像和第二重映射图像生成拉普拉斯金字塔的过程正好相反。具体为从最高层开始到最底层,依次进行插值放大并与下一层相加,最终得到一张图像,即融合图像。此处的融合图像是第一重叠图像和第二重叠图像的融合图像,需要加上第一图像和第二图像中的非重叠部分,构成第一图像和第二图像的整体拼接图像。
由于拉普拉斯金字塔可以在融合过程中保留更多的细节,而高斯金字塔可以在融合过程中对拼缝进行模糊化,能够在消除拼缝的同时最大限度的保留图像原有的细节信息,进一步改善拼接图像的质量。
需要说明的是,本申请实例中,图像中的单位为像素,矩阵中的单位为元素,实际上图像和矩阵是对应的,像素和元素也是对应的。
另一方面,本申请实例还提供一种图像拼接装置,如图8所示,该装置800包括:
获取模块801,获取第一重叠图像和第二重叠图像;其中,所述第一重叠图像为第一图像中与第二图像重叠的区域,所述第二重叠图像为所述第二图像中与所述第一图像重叠的区域,所述第一图像和所述第二图像为待拼接的相邻图像;
确定模块802,确定从所述第一重叠图像中每一像素点到所述第二重叠图像中相应像素点的运动矢量,得到光流矢量矩阵;
重映射模块803,根据所述光流矢量矩阵,对所述第一重叠图像进行重映射得到第一重映射图像以及对所述第二重叠图像进行重映射得到第二重映射图像;
融合模块804,对所述第一重映射图像和所述第二重映射图像进行融合,得到所述第一重叠图像和所述第二重叠图像的融合图像。
可理解的是,本申请实例提供的图像拼接装置为第一方面中实例提供的图像拼接方法的功能架构模块,因此本申请实例中有关内容的解释、举例、有益效果等部分可以参考第一方面中实例提供的图像拼接方法中的相应部分,此处不再赘述。
在一些实例中,确定模块802还可以:
确定从所述第一重叠图像到所述第二重叠图像的过渡权值矩阵;
其中,重映射模块803可以:根据所述光流矢量矩阵和所述过渡权值矩阵,对所述第一重叠图像进行重映射得到第一重映射图像以及对所述第二重叠图像进行重映射得到第二重映射图像。
在一些实例中,确定模块802确定从所述第一重叠图像到所述第二重叠图像的过渡权值矩阵的过程包括:
确定所述第一重叠图像和所述第二重叠图像的重叠矩阵;其中,所述第一重叠图像和所述第二重叠图像共同有效部分的像素在所述重叠矩阵中对应位置处的元素的大小为第一预设值,其他部分的像素在所述重叠矩阵中对应位置处的元素的大小为不同于所述第一预设值的第二预设值;
确定所述重叠矩阵中每一行中所述第一预设值的元素的列坐标范围;
根据所述列坐标范围以及该行中每一元素的列坐标,确定该元素的过渡权值,并将所述重叠矩阵中各个元素的过渡权值形成所述过渡权值矩阵。
在一些实例中,确定模块802可以采用下式确定所述重叠矩阵中第i行第j列的元素的过渡权值:
Weight1(i,j)=(end_i-j)/(end_i-start_i)
式中,Weight1(i,j)为所述重叠矩阵中第i行第j列的元素的过渡权值,start_i为所述重叠矩阵中第i行中所述列坐标范围中的最小列坐标;end_i为所述重叠矩阵中第i行中为所述列坐标范围中的最大列坐标。
在一些实例中,重映射模块803对所述第一重叠图像进行重映射得到第一重映射图像以及对所述第二重叠图像进行重映射得到第二重映射图像的过程可以包括:
根据所述光流矩阵和所述过渡权值矩阵,确定第一过渡映射矩阵和第二过渡映射矩阵;其中,所述第一过渡映射矩阵为从所述第一重叠图像至所述第二重叠图像的过渡映射矩阵,所述第二过渡映射矩阵为从所述第二重叠图像至所述第一重叠图像的过渡映射矩阵;
利用所述第一过渡映射矩阵,对所述第一重叠图像进行重映射,得到所述第一重映射图像;以及,利用所述第二过渡映射矩阵,对所述第二重叠图像进行重映射,得到所述第二重映射图像。
在一些实例中,重映射模块803确定第一过渡映射矩阵的方法可以包括:
若Weight1(i,j)=0,则采用下式确定所述第一过渡映射矩阵中第i行第j列的元素:
否则,采用下式确定所述第一过渡映射矩阵中第i行第j列的元素:
上式中,Weight1(i,j)为所述过渡权值矩阵中的第i行第j列的元素的大小;Warp1(i,j)为所述第一过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp1(i,j).x为所述映射矢量在水平方向上的分量;Warp1(i,j).y为所述映射矢量在垂直方向上的分量;flow(i,j)为所述光流矩阵中第i行第j列元素代表的运动矢量;flow(i,j).y为所述运动矢量在垂直方向上的分量;flow(i,j).x为所述运动矢量在水平方向上的分量。
在一些实例中,重映射模块803可以采用下式确定所述第一重映射图像中第i行第j列像素的颜色值:
overlap_left_dst(i,j)=overlap_left_src(ii,jj)
上式中,overlap_left_dst(i,j)为所述第一重映射图像中第i行第j列像素的颜色值;overlap_left_src(ii,jj)为所述第一重叠图像中第ii行第jj列像素的颜色值;ii=Warp1(i,j).y,jj=Warp1(i,j).x,Warp1(i,j)为所述第一过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp1(i,j).x为所述映射矢量在水平方向上的分量;Warp1(i,j).y为所述映射矢量在垂直方向上的分量。
在一些实例中,重映射模块803确定第二过渡映射矩阵的方法可以包括:
若Weight1(i,j)=0,则采用下式确定所述第二过渡映射矩阵中第i行第j列的元素:
否则,采用下式确定所述第二过渡映射矩阵中第i行第j列的元素:
上式中,Weight1(i,j)为所述过渡权值矩阵中的第i行第j列的元素的大小;Warp2(i,j)为所述第二过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp2(i,j).x为所述映射矢量在水平方向上的分量;Warp2(i,j).y为所述映射矢量在垂直方向上的分量;flow(i,j)为所述光流矩阵中第i行第j列元素代表的运动矢量;flow(i,j).y为所述运动矢量在垂直方向上的分量;flow(i,j).x为所述运动矢量在水平方向上的分量。
在一些实例中,重映射模块803可以采用下式确定所述第二重映射图像中第i行第j列像素的颜色值:
overlap_right_dst(i,j)=overlap_right_src(ii,jj)
式中,overlap_right_dst(i,j)为所述第二重映射图像中第i行第j列像素的颜色值,overlap_right_src(ii,jj)为所述第二重映射图像中第ii行第jj列像素的颜色值;ii=Warp2(i,j).y,jj=Warp2(i,j).x,Warp2(i,j)为所述第二过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp2(i,j).x为所述映射矢量在水平方向上的分量;Warp2(i,j).y为所述映射矢量在垂直方向上的分量。
在一些实例中,确定模块802还可以根据所述重叠矩阵中每一元素的过渡权值与预设阈值的关系,确定对应元素的融合权值,并将所述重叠矩阵中各个元素的融合权值形成融合权值矩阵;
其中,融合模块804可以利用所述融合权值矩阵,将所述第一重映射图像和所述第二重映射图像进行融合。
在一些实例中,确定模块802确定对应元素的融合权值的过程可以包括:
若该元素的过渡权值大于预设阈值,则该元素对应的融合权值为1;否则,该元素对应的融合权值为0。
在一些实例中,融合模块804将所述第一重映射图像和所述第二重映射图像进行融合的过程可以包括:
分别建立所述第一重映射图像和所述第二重映射图像的拉普拉斯金字塔,并建立所述融合权值矩阵的高斯金字塔;
利用所述高斯金字塔,对所述第一重映射图像的拉普拉斯金字塔和所述第二重映射图像的拉普拉斯金字塔进行融合,得到融合金字塔;
将所述融合金字塔进行图像还原,得到所述融合图像。
在一些实例中,融合模块804可以,采用下式确定对所述第一重映射图像和所述第二重映射图像的拉普拉斯金字塔中的第level层中的第i行第j列的像素进行融合:
Result_dst_LS(i,j,level)=overlap_left_dst_LS(i,j,level)*Weight2_GR(i,j,level)+overlap_right_dst_LS(i,j,level)*(1-Weight2_GR(i,j,level))
式中,Result_dst_LS(i,j,level)为所述融合金字塔的第level层第i行第j列像素的颜色值;overlap_left_dst_LS(i,j,level)为所述第一重映射图像的拉普拉斯金字塔的第level层第i行第j列像素的颜色值;overlap_right_dst_LS(i,j,level)为所述第二重映射图像的拉普拉斯金字塔的第level层第i行第j列像素的颜色值;Weight2_GR(i,j,level)为所述高斯金字塔的第level层第i行第j列元素的大小。
又一方面,本申请一实例还提供一种存储介质,存储介质上存储有计算机程序,该程序被处理器执行时实现上述任一方法的步骤。
上述存储介质有多种,例如,U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
又一方面,本申请一实例还提供一种计算机设备,如图9所示,该计算机设备包括一个或者多个处理器(CPU)902、通信模块904、存储器906、用户接口910,以及用于互联这些组件的通信总线908,其中:
处理器902可通过通信模块904接收和发送数据以实现网络通信和/或本地通信。
用户接口910包括一个或多个输出设备912,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口910也包括一个或多个输入设备914,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。
存储器906可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器906存储处理器902可执行的指令集,包括:
操作系统916,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
应用918,包括用于视频台词处理的各种应用程序,这种应用程序能够实现上述各实例中的处理流程,比如可以包括图像拼接装置800的部分或全部指令模块或单元。处理器902通过执行存储器906中各单元中至少一个单元中的机器可执行指令,进而能够实现上述各单元或模块中的至少一个模块的功能。
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
各实施例中的硬件模块可以以硬件方式或硬件平台加软件的方式实现。上述软件包括机器可读指令,存储在非易失性存储介质中。因此,各实施例也可以体现为软件产品。
各例中,硬件可以由专门的硬件或执行机器可读指令的硬件实现。例如,硬件可以为专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。
另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请,本申请还提供了一种非易失性存储介质,其中存储有数据处理程序,这种数据处理程序可用于执行本申请上述方法实例中的任何一种实例。
图9模块对应的机器可读指令可以使计算机上操作的操作系统等来完成这里描述的部分或者全部操作。非易失性计算机可读存储介质可以是插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器。安装在扩展板或者扩展单元上的CPU等可以根据指令执行部分和全部实际操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (16)
1.一种图像拼接方法,其特征在于,包括:
获取第一重叠图像和第二重叠图像;其中,所述第一重叠图像为第一图像中与第二图像重叠的区域,所述第二重叠图像为所述第二图像中与所述第一图像重叠的区域,所述第一图像和所述第二图像为待拼接的相邻图像;
确定从所述第一重叠图像中每一像素点到所述第二重叠图像中相应像素点的运动矢量,得到光流矢量矩阵;确定从所述第一重叠图像到所述第二重叠图像的过渡权值矩阵;
根据所述光流矢量矩阵和所述过渡权值矩阵,确定从所述第一重叠图像至所述第二重叠图像的第一过渡映射矩阵和从所述第二重叠图像至所述第一重叠图像的第二过渡映射矩阵;其中,采用下式确定所述第一过渡映射矩阵中第i行第j列的元素:
其中,Weight1(i,j)为所述过渡权值矩阵中的第i行第j列的元素的大小;Warp1(i,j)为所述第一过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp1(i,j).x为所述映射矢量在水平方向上的分量;Warp1(i,j).y为所述映射矢量在垂直方向上的分量;flow(i,j)为所述光流矢量矩阵中第i行第j列元素代表的运动矢量;flow(i,j).y为所述运动矢量在垂直方向上的分量;flow(i,j).x为所述运动矢量在水平方向上的分量;
利用所述第一过渡映射矩阵,对所述第一重叠图像进行重映射得到第一重映射图像,以及,利用所述第二过渡映射矩阵,对所述第二重叠图像进行重映射得到第二重映射图像;及,对所述第一重映射图像和所述第二重映射图像进行融合,得到所述第一重叠图像和所述第二重叠图像的融合图像。
2.根据权利要求1所述的方法,其特征在于,还包括:
确定所述第一重叠图像和所述第二重叠图像的重叠矩阵;
所述对所述第一重映射图像和所述第二重映射图像进行融合,得到所述第一重叠图像和所述第二重叠图像的融合图像,包括:
分别建立所述第一重映射图像和所述第二重映射图像的拉普拉斯金字塔,并建立所述重叠矩阵对应的融合权值矩阵的高斯金字塔;
利用所述高斯金字塔,对所述第一重映射图像的拉普拉斯金字塔和所述第二重映射图像的拉普拉斯金字塔进行融合,得到融合金字塔,并将所述融合金字塔进行图像还原,得到所述融合图像。
3.根据权利要求2所述的方法,其特征在于,所述第一重叠图像和所述第二重叠图像共同有效部分的像素在所述重叠矩阵中对应位置处的元素的大小为第一预设值,其他部分的像素在所述重叠矩阵中对应位置处的元素的大小为不同于所述第一预设值的第二预设值;
所述确定从所述第一重叠图像到所述第二重叠图像的过渡权值矩阵,包括:
确定所述重叠矩阵中每一行中所述第一预设值的元素的列坐标范围;
根据所述列坐标范围以及该行中每一元素的列坐标,确定该元素对应的过渡权值,并将所述重叠矩阵中各个元素对应的过渡权值形成所述过渡权值矩阵。
4.根据权利要求3所述的方法,其特征在于,采用下式确定所述重叠矩阵中第i行第j列的元素对应的过渡权值:
Weight1(i,j)=(end_i-j)/(end_i-start_i)
其中,start_i为所述重叠矩阵中第i行中所述列坐标范围中的最小列坐标;end_i为所述重叠矩阵中第i行中为所述列坐标范围中的最大列坐标。
5.根据权利要求4所述的方法,其特征在于,所述过渡权值矩阵中各列元素的大小从大逐渐变小。
7.根据权利要求1所述的方法,其特征在于,所述利用所述第一过渡映射矩阵,对所述第一重叠图像进行重映射得到第一重映射图像,包括:
采用下式确定所述第一重映射图像中第i行第j列像素的颜色值:
overlap_left_dst(i,j)=overlap_left_stc(ii,jj)
其中,overlap_left_dst(i,j)为所述第一重映射图像中第i行第j列像素的颜色值;overlap_left_src(ii,jj)为所述第一重叠图像中第ii行第jj列像素的颜色值;ii=Warp1(i,j).y,jj=Warp1(i,j).x。
9.根据权利要求8所述的方法,其特征在于,所述利用所述第二过渡映射矩阵,对所述第二重叠图像进行重映射得到第二重映射图像,包括:
采用下式确定所述第二重映射图像中第i行第j列像素的颜色值:
overlap_right_dst(i,j)=overlap_right_src(ii,jj)
其中,overlap_right_dst(i,j)为所述第二重映射图像中第i行第j列像素的颜色值,overlap_right_src(ii,jj)为所述第二重叠图像中第ii行第jj列像素的颜色值;ii=Warp2(i,j).y,jj=Warp2(i,j).x。
10.根据权利要求2所述的方法,其特征在于,还包括:
根据所述重叠矩阵中每一元素的过渡权值与预设阈值的关系,确定对应元素的融合权值,并将所述重叠矩阵中各个元素的融合权值形成所述融合权值矩阵。
11.根据权利要求10所述的方法,其特征在于,所述根据所述重叠矩阵中每一元素的过渡权值与预设阈值的关系,确定对应元素的融合权值,包括:
若该元素的过渡权值大于预设阈值,则该元素对应的融合权值为1;否则,该元素对应的融合权值为0。
12.根据权利要求2所述的方法,其特征在于,所述高斯金字塔用于在融合过程中对拼缝进行模糊化。
13.根据权利要求2所述的方法,其特征在于,所述利用所述高斯金字塔,对所述第一重映射图像的拉普拉斯金字塔和所述第二重映射图像的拉普拉斯金字塔进行融合,得到融合金字塔,包括:
采用下式对所述第一重映射图像的拉普拉斯金字塔和所述第二重映射图像的拉普拉斯金字塔中的第level层中的第i行第j列的像素进行融合:
Result_dst_LS(i,j,level)=overlap_left_dst_LS(i,j,level)*Weight2_GR(i,j,level)+overlap_right_dst_LS(i,j,level)*(1-Weight2_GR(i,j,level))
其中,Result_dst_LS(i,j,level)为所述融合金字塔的第level层第i行第j列像素的颜色值;overlap_left_dst_LS(i,j,level)为所述第一重映射图像的拉普拉斯金字塔的第level层第i行第j列像素的颜色值;overlap_right_dst_LS(i,j,level)为所述第二重映射图像的拉普拉斯金字塔的第level层第i行第j列像素的颜色值;Weight2_GR(i,j,level)为所述高斯金字塔的第level层第i行第j列元素的大小。
14.一种图像拼接装置,其特征在于,包括:
获取模块,用于获取第一重叠图像和第二重叠图像;其中,所述第一重叠图像为第一图像中与第二图像重叠的区域,所述第二重叠图像为所述第二图像中与所述第一图像重叠的区域,所述第一图像和所述第二图像为待拼接的相邻图像;
确定模块,用于确定从所述第一重叠图像中每一像素点到所述第二重叠图像中相应像素点的运动矢量,得到光流矢量矩阵;确定从所述第一重叠图像到所述第二重叠图像的过渡权值矩阵;根据所述光流矢量矩阵和所述过渡权值矩阵,确定从所述第一重叠图像至所述第二重叠图像的第一过渡映射矩阵和从所述第二重叠图像至所述第一重叠图像的第二过渡映射矩阵;其中,采用下式确定所述第一过渡映射矩阵中第i行第j列的元素:
其中,Weight1(i,j)为所述过渡权值矩阵中的第i行第j列的元素的大小;Warp1(i,j)为所述第一过渡映射矩阵中第i行第j列元素代表的映射矢量;Warp1(i,j).x为所述映射矢量在水平方向上的分量;Warp1(i,j).y为所述映射矢量在垂直方向上的分量;flow(i,j)为所述光流矢量矩阵中第i行第j列元素代表的运动矢量;flow(i,j).y为所述运动矢量在垂直方向上的分量;flow(i,j).x为所述运动矢量在水平方向上的分量;
重映射模块,用于利用所述第一过渡映射矩阵,对所述第一重叠图像进行重映射得到第一重映射图像,以及,利用所述第二过渡映射矩阵,对所述第二重叠图像进行重映射得到第二重映射图像;及,
融合模块,用于对所述第一重映射图像和所述第二重映射图像进行融合,得到所述第一重叠图像和所述第二重叠图像的融合图像。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~13中任一项所述的方法。
16.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1-13中任一项所述的方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710831538.0A CN109509146B (zh) | 2017-09-15 | 2017-09-15 | 图像拼接方法及装置、存储介质 |
KR1020207007040A KR102317524B1 (ko) | 2017-09-15 | 2018-09-14 | 이미지 스플라이싱 방법 및 장치, 그리고 저장 매체 |
PCT/CN2018/105700 WO2019052534A1 (zh) | 2017-09-15 | 2018-09-14 | 图像拼接方法及装置、存储介质 |
EP18856585.7A EP3660781B1 (en) | 2017-09-15 | 2018-09-14 | Image stitching method and device, and storage medium |
JP2020515105A JP6970283B2 (ja) | 2017-09-15 | 2018-09-14 | 画像ステッチング方法および装置、記憶媒体 |
US16/810,950 US11178428B2 (en) | 2017-09-15 | 2020-03-06 | Image splicing method and apparatus, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710831538.0A CN109509146B (zh) | 2017-09-15 | 2017-09-15 | 图像拼接方法及装置、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109509146A CN109509146A (zh) | 2019-03-22 |
CN109509146B true CN109509146B (zh) | 2023-03-24 |
Family
ID=65722406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710831538.0A Active CN109509146B (zh) | 2017-09-15 | 2017-09-15 | 图像拼接方法及装置、存储介质 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11178428B2 (zh) |
EP (1) | EP3660781B1 (zh) |
JP (1) | JP6970283B2 (zh) |
KR (1) | KR102317524B1 (zh) |
CN (1) | CN109509146B (zh) |
WO (1) | WO2019052534A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021031210A1 (zh) * | 2019-08-22 | 2021-02-25 | 深圳市铂岩科技有限公司 | 视频处理方法和装置、存储介质和电子设备 |
CN110853106B (zh) * | 2019-10-29 | 2022-10-11 | 苏州佳世达光电有限公司 | 口扫系统及口扫影像处理方法 |
CN111738923B (zh) * | 2020-06-19 | 2024-05-10 | 京东方科技集团股份有限公司 | 图像处理方法、设备及存储介质 |
CN111915587B (zh) * | 2020-07-30 | 2024-02-02 | 北京大米科技有限公司 | 视频处理方法、装置、存储介质和电子设备 |
JP2023538998A (ja) | 2020-12-15 | 2023-09-13 | ユーム.コム リミテッド | ボリューメトリック・ビデオ内においてメッシュ・シーケンスを融合する方法 |
CN112700382B (zh) * | 2020-12-23 | 2024-03-26 | 杭州海康微影传感科技有限公司 | 一种图像接缝消除方法、装置及电子设备 |
CN112750078B (zh) * | 2020-12-28 | 2023-06-02 | 广州市明美光电技术有限公司 | 基于面向电动平台的显微图像实时拼接方法及存储介质 |
US11948315B2 (en) * | 2020-12-31 | 2024-04-02 | Nvidia Corporation | Image composition in multiview automotive and robotics systems |
CN112819696A (zh) * | 2021-01-29 | 2021-05-18 | 青岛海信移动通信技术股份有限公司 | 电子设备及其图像处理方法 |
CN113450252A (zh) * | 2021-05-11 | 2021-09-28 | 点智芯科技(北京)有限公司 | 一种超像素分割单映矩阵聚类图像拼接方法 |
CN113298695B (zh) * | 2021-06-25 | 2024-04-26 | 北京爱芯科技有限公司 | 一种图像处理组件和芯片、图像处理方法和存储介质 |
CN113674157B (zh) * | 2021-10-21 | 2022-02-22 | 广东唯仁医疗科技有限公司 | 眼底图像拼接方法、计算机装置和存储介质 |
KR102571530B1 (ko) * | 2021-11-15 | 2023-08-28 | 국방과학연구소 | 이미지 스티칭을 위한 장치 및 그 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815802A (zh) * | 2016-12-23 | 2017-06-09 | 深圳超多维科技有限公司 | 一种图像拼接方法及装置 |
CN106910159A (zh) * | 2016-10-12 | 2017-06-30 | 王玲 | 视频拼接方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6469710B1 (en) * | 1998-09-25 | 2002-10-22 | Microsoft Corporation | Inverse texture mapping using weighted pyramid blending |
US7450270B2 (en) * | 2004-01-16 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Image data processing methods, hard imaging devices, and articles of manufacture |
CN100455266C (zh) * | 2005-03-29 | 2009-01-28 | 深圳迈瑞生物医疗电子股份有限公司 | 宽景成像处理方法 |
US8903191B2 (en) * | 2008-12-30 | 2014-12-02 | Intel Corporation | Method and apparatus for noise reduction in video |
KR100987412B1 (ko) * | 2009-01-15 | 2010-10-12 | 포항공과대학교 산학협력단 | 멀티프레임을 고려한 비디오 오브젝트 매팅 시스템 및 방법 |
KR101224061B1 (ko) * | 2011-01-28 | 2013-01-21 | 포항공과대학교 산학협력단 | 영상 합성 장치 및 방법 |
JP5982751B2 (ja) | 2011-08-04 | 2016-08-31 | ソニー株式会社 | 画像処理装置、および画像処理方法、並びにプログラム |
CN103841297B (zh) * | 2012-11-23 | 2016-12-07 | 中国航天科工集团第三研究院第八三五七研究所 | 一种适用于合成运动摄像载体的电子稳像方法 |
CN103974055B (zh) * | 2013-02-06 | 2016-06-08 | 城市图像科技有限公司 | 3d照片生成系统及方法 |
CN104835115A (zh) * | 2015-05-07 | 2015-08-12 | 中国科学院长春光学精密机械与物理研究所 | 用于航空相机的图像成像方法及系统 |
CN106803899B (zh) * | 2015-11-26 | 2019-10-01 | 华为技术有限公司 | 合并图像的方法和装置 |
CN105976320A (zh) * | 2016-05-06 | 2016-09-28 | 安徽伟合电子科技有限公司 | 一种图像拼接方法 |
-
2017
- 2017-09-15 CN CN201710831538.0A patent/CN109509146B/zh active Active
-
2018
- 2018-09-14 EP EP18856585.7A patent/EP3660781B1/en active Active
- 2018-09-14 KR KR1020207007040A patent/KR102317524B1/ko active IP Right Grant
- 2018-09-14 WO PCT/CN2018/105700 patent/WO2019052534A1/zh unknown
- 2018-09-14 JP JP2020515105A patent/JP6970283B2/ja active Active
-
2020
- 2020-03-06 US US16/810,950 patent/US11178428B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106910159A (zh) * | 2016-10-12 | 2017-06-30 | 王玲 | 视频拼接方法及装置 |
CN106815802A (zh) * | 2016-12-23 | 2017-06-09 | 深圳超多维科技有限公司 | 一种图像拼接方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2019052534A1 (zh) | 2019-03-21 |
US20200213620A1 (en) | 2020-07-02 |
JP6970283B2 (ja) | 2021-11-24 |
EP3660781B1 (en) | 2023-06-07 |
US11178428B2 (en) | 2021-11-16 |
KR20200035457A (ko) | 2020-04-03 |
EP3660781A1 (en) | 2020-06-03 |
CN109509146A (zh) | 2019-03-22 |
JP2020533710A (ja) | 2020-11-19 |
KR102317524B1 (ko) | 2021-10-25 |
EP3660781A4 (en) | 2020-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109509146B (zh) | 图像拼接方法及装置、存储介质 | |
KR101956149B1 (ko) | 이미지 사이의 광학 흐름의 효율적 결정 | |
US9754179B2 (en) | Image generating device, electronic device, image generating method and recording medium | |
KR101956151B1 (ko) | 사용자 단말기에 이용되는 전경 영상 생성 방법 및 장치 | |
CN107451952B (zh) | 一种全景视频的拼接融合方法、设备以及系统 | |
CN104618648A (zh) | 一种全景视频拼接系统及拼接方法 | |
CN108665415B (zh) | 基于深度学习的图像质量提升方法及其装置 | |
JP2019509526A (ja) | 多数のカメラを用いた最適の球形映像獲得方法 | |
WO2018006669A1 (zh) | 视差融合方法和装置 | |
CN114143528B (zh) | 多视频流融合方法、电子设备、存储介质 | |
CN112801873B (zh) | 一种全景图像拼接建模的方法及装置 | |
CN114143528A (zh) | 多视频流融合方法、电子设备、存储介质 | |
CN117455799A (zh) | 一种图像处理方法、电子设备及存储介质 | |
CN115272050A (zh) | 一种图像处理方法、装置,电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |