一种利用分块运算的图像拼接方法技术

技术编号:15619261 阅读:58 留言:0更新日期:2017-06-14 04:12
本发明专利技术公开了一种利用分块运算的图像拼接方法,包括如下步骤:获取多路摄像头拍摄的原始图像以及预设坐标映射表;基于预设坐标映射表,确定全景图像与原始图像像素点坐标之间的对应关系,利用分块运算将原始图像分割成大小一致的许多小块;对分块插值后的原始图像,将每个小块中像素点的像素值进行投影映射,并根据映射结果得到最后的全景图像;本发明专利技术对分割好的源图像块进行操作,以每个块为单位,找到对应关系,依据目标像素点所在的位置将源像素点的像素值投影到目标像素点中,就得到了待处理图片对应的全景图片。基于遗传算法的分块运算降低了分块的冗余率,使基于分块运算的全景图像拼接方法在FPGA上处理速度大幅度提高。

【技术实现步骤摘要】
一种利用分块运算的图像拼接方法
本专利技术属于图像通信
,涉及鱼眼图像拼接
,尤其涉及一种利用分块运算的全景图像实时拼接方法。
技术介绍
鱼眼图像拼接是一种利用实景图像组成全景空间的技术,目前的鱼眼图像拼接技术主要有两种方案:第一种方案是用一个常规镜头的投影变换和多项式畸变校正技术用校正模板图像对镜头畸变参数进行畸变校正,生成一组中间校正后的2D图像,然后采用2D图像配准技术对校正后的图像元进行2D配准,最后对配准的两幅图像进行融合。第二种方案是把鱼眼图像的径向畸变校正参数和图像元的位姿参数作为一体,整体用最优化技术进行参数估计,生成一个参数映射表,然后利用参数映射表将原始图片逐张映射到全景图像中,处理完所有的图像后,将两两相邻的处理之后的图像在重叠区域做一次融合过渡。在图像拼接算法的映射过程中,由于需要对原始图像的每一个像素点都进行一次完整的投影映射计算,因此整个处理过程的计算量非常庞大,对计算机处理资源的消耗也很大。在中国专利申请号CN105516597A中介绍了一种全景拍摄处理方法及装置。它结合离线处理和在线处理两部分,其中,离线处理主要是指离线生成预设坐标映射表,在线处理主要是结合预设坐标映射表进行映射拼接形成全景图像。该方法尽管减少了计算机的处理次数,由于FPGA的带宽以及缓存的限制,这种基于像素点的投影映射在硬件上处理起来的效率非常低。
技术实现思路
本专利技术为克服上述情况不足,旨在提出了一种利用分块运算的全景图像实时拼接方法。一种利用分块运算的图像拼接方法,包括如下步骤:S1:获取多路摄像头拍摄的原始图像以及预设坐标映射表;S2:基于预设坐标映射表,确定全景图像与原始图像像素点坐标之间的对应关系,利用分块运算将原始图像分割成大小一致的许多小块;具体包括如下S201、S202、S203步骤;S201:标记原始图像中有效像素点所在的区域及像素集;在原始图像中查找与目标像素点相对应的源像素点的计算方法如下:Dst(x,y)=Src(Lut_x(x,y),Lut_y(x,y))其中,Dst(x,y)表示坐标为(x,y)的目标像素点,Lut_x(x,y)表示目标像素点坐标(x,y)经过预设坐标映射表映射到源图像中X方向上的坐标值,Lut_y(x,y)表示目标像素点坐标(x,y)经过预设坐标映射表映射到源图像中Y方向上的坐标值,Src(Lut_x(x,y),Lut_y(x,y))表示目标像素点坐标(x,y)经过预设坐标映射表映射到源图像中的位置;对于一个目标像素点,计算与小数坐标相对应的整数坐标区域的端点值Xmin、Ymin、Xmax、Ymax,公式表示如下:Xmin=floor(Lut_x(x,y))-1,Ymin=floor(Lut_y(x,y))-1Xmax=ceil(Lut_x(x,y))+1,Ymax=ceil(Lut_y(x,y))+1其中,floor(.)函数表示小数值向下取整数,ceil(.)函数表示小数值向上取整数;所述四个端点值组成了16种整数坐标,存储在原像素坐标集Epixel_position中;依次计算与所有目标像素点相对应的源像素点的整数坐标,并保存在Epixel_position;提取Epixel_position中保存的所有整数坐标在X和Y方向上的最值Ex-min、Ey-min、Ex-max、Ey-max,将这4个最值对应到原始图像中,框定一个矩形区域,将这个矩形区域标记为包含原始图像中有效像素点的区域;S202:利用遗传算法将原始图像分割成大小相同的块;具体包括S2021、S2022、S2023S2024:S2021:在S201步标记的区域中,随机初始化M个初始个体即M个可行性解,每个个体中包含了N个分割块,每个块用box表示,box里面存储了这个块的起始坐标点(boxx,boxy)以及这个块的精准度Index;可行性解的表示方法如下:Cordination={(boxx1,boxy1),(boxx2,boxy2),......,(boxxN,boxyN)}Available={Index1Index2,......,IndexN}S2022:建立适度值评估函数即目标优化函数对可行性解进行评估,并记录下每个可行性解的适应度值,目标优化函数如下所示:其中:F(.)函数表示计算每个box中有效像素坐标的集合,(boxx+x,boxy+y)表示每个box中以(boxx,boxy)为起始坐,标偏移量为(x,y)的坐标值,bsize表示每个块的大小;S2023:根据每个可行性解的适应度值,淘汰掉适应度值较小的20%个个体,并用适应度高的前20%个个体代替那些淘汰的个体;按照轮盘赌算法从所有可行性解中选择其中的2个可行性解作为交配对象,利用k-opt交叉运算,采用K点交换规则,对这2个可行性解进行交叉互换,得出2个交配结果,对两个新的交配结果新生儿按照变异规则进行变异运算;S2024:循环执行S2023,直至新生儿总数达到设定的上限,然后转至S2022进行优化,当目标函数值小于设定的阈值时停止迭代,得到全局最优解;S203:对每个块中的非整数坐标进行双立方差值运算,得到整数像素值;双立方插值算法的计算公式如下:其中,(i′,j′)表示待计算像素点在4×4的采样区域中包含小数部分的像素坐标,P(i′,j′)表示4×4的采样区域中的16个像素值与各自的权重做卷积和之后形成的新像素值,dx表示X方向的小数坐标,dy表示Y方向的小数坐标,m表示4×4的采样区域中X方向上的坐标,n表示4×4的采样区域中Y方向上的坐标,P(m,n)表示4×4的采样区域中的坐标为(m,n)的像素值,R(.)表示插值表达式;S3:对分块插值后的原始图像,将每个小块中像素点的像素值进行投影映射,并根据映射结果得到最后的全景图像;首先判断所述目标像素点是否位于重叠区域;如是,则获取所述源像素点的像素值进行投射,以获得所述全景图片;如否,获取所述源像素点的混合像素值进行投射,以获得所述全景图片;混合像素值计算方法如下:Idst(x,y)=α×Isrc1(x,y)+(1-α)×Isrc2(x,y)其中,Idst(x,y)表示目标图像中坐标(x,y)处的像素值,Isrc1(x,y)表示原始图像1中坐标(x,y)处的像素值,Isrc2(x,y)表示原始图像2中坐标(x,y)处的像素值,α表示加权系数。进一步的,所述S2021中M的取值范围为1000~10000。进一步的,所述S2021中每个块的大小是(128×128),块数的取值范围为300~500。进一步的,所述S301中的重叠区域的取值范围为32~128。进一步的,所述S203中插值表达式采用B样条曲线表达式进行插值,数学公式如下:本专利技术以原始图像中分割好的每个块为单位,找到块中源像素点与目标像素点的一一对应关系,依据预设的坐标映射表,将源像素点的像素值投影到目标像素点中,就得到了与待处理图片对应的全景图片,这种按块的方式进行投影映射,大大的降低了全景拍摄过程中的计算量,可有效降低处理过程消耗的资源;进一步地,采用标记原始图像中有效像素的区域对原始图像进行分块,可以减少分块算法的冗余;进一步地,利用遗传算法的选择、杂交变异等机制以及优化函数在原始图像本文档来自技高网...
一种利用分块运算的图像拼接方法

【技术保护点】
一种利用分块运算的图像拼接方法,其特征在于,包括如下步骤:S1:获取多路摄像头拍摄的原始图像以及预设坐标映射表;S2:基于预设坐标映射表,确定全景图像与原始图像像素点坐标之间的对应关系,利用分块运算将原始图像分割成大小一致的许多小块;具体包括如下S201、S202、S203步骤;S201:标记原始图像中有效像素点所在的区域及像素集;在原始图像中查找与目标像素点相对应的源像素点的计算方法如下:Dst(x,y)=Src(Lut_x(x,y),Lut_y(x,y))其中,Dst(x,y)表示坐标为(x,y)的目标像素点,Lut_x(x,y)表示目标像素点坐标(x,y)经过预设坐标映射表映射到源图像中X方向上的坐标值,Lut_y(x,y)表示目标像素点坐标(x,y)经过预设坐标映射表映射到源图像中Y方向上的坐标值,Src(Lut_x(x,y),Lut_y(x,y))表示目标像素点坐标(x,y)经过预设坐标映射表映射到源图像中的位置;对于一个目标像素点,计算与小数坐标相对应的整数坐标区域的端点值X

【技术特征摘要】
1.一种利用分块运算的图像拼接方法,其特征在于,包括如下步骤:S1:获取多路摄像头拍摄的原始图像以及预设坐标映射表;S2:基于预设坐标映射表,确定全景图像与原始图像像素点坐标之间的对应关系,利用分块运算将原始图像分割成大小一致的许多小块;具体包括如下S201、S202、S203步骤;S201:标记原始图像中有效像素点所在的区域及像素集;在原始图像中查找与目标像素点相对应的源像素点的计算方法如下:Dst(x,y)=Src(Lut_x(x,y),Lut_y(x,y))其中,Dst(x,y)表示坐标为(x,y)的目标像素点,Lut_x(x,y)表示目标像素点坐标(x,y)经过预设坐标映射表映射到源图像中X方向上的坐标值,Lut_y(x,y)表示目标像素点坐标(x,y)经过预设坐标映射表映射到源图像中Y方向上的坐标值,Src(Lut_x(x,y),Lut_y(x,y))表示目标像素点坐标(x,y)经过预设坐标映射表映射到源图像中的位置;对于一个目标像素点,计算与小数坐标相对应的整数坐标区域的端点值Xmin、Ymin、Xmax、Ymax,公式表示如下:Xmin=floor(Lut_x(x,y))-1,Ymin=floor(Lut_y(x,y))-1Xmax=ceil(Lut_x(x,y))+1,Ymax=ceil(Lut_y(x,y))+1其中,floor(.)函数表示小数值向下取整数,ceil(.)函数表示小数值向上取整数;所述四个端点值组成了16种整数坐标,存储在原像素坐标集Epixel_position中;依次计算与所有目标像素点相对应的源像素点的整数坐标,并保存在Epixel_position;提取Epixel_position中保存的所有整数坐标在X和Y方向上的最值Ex-min、Ey-min、Ex-max、Ey-max,将这4个最值对应到原始图像中,框定一个矩形区域,将这个矩形区域标记为包含原始图像中有效像素点的区域;S202:利用遗传算法将原始图像分割成大小相同的块;具体包括S2021、S2022、S2023S2024:S2021:在S201步标记的区域中,随机初始化M个初始个体即M个可行性解,每个个体中包含了N个分割块,每个块用box表示,box里面存储了这个块的起始坐标点(boxx,boxy)以及这个块的精准度Index;可行性解的表示方法如下:Cordination={(boxx1,boxy1),(boxx2,boxy2),......,(boxxN,boxyN)}Available={Index1,INdex2,……,IndexN}S2022:建立适度值评估函数即目标优化函数对可行性解进行评估,并记录下每个可行性解的适应度值,目标优化函数如下所示:其中:

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:长沙全度影像科技有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1