• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 14
    • 下载费用:30 金币  

    2018重庆时时彩资料: 一种利用分块运算的图像拼接方法.pdf

    关 键 词:
    一种 利用 分块 运算 图像 拼接 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201710049958.3

    申请日:

    2017.01.20

    公开号:

    CN106815808A

    公开日:

    2017.06.09

    当前法律状态:

    实审

    有效性:

    审中

    法律详情: 实质审查的生效IPC(主分类):G06T 3/40申请日:20170120|||公开
    IPC分类号: G06T3/40; G06N3/12 主分类号: G06T3/40
    申请人: 长沙全度影像科技有限公司
    发明人: 不公告发明人
    地址: 410205 湖南省长沙市高新开发区尖山路39号中电软件园一期9栋厂房4层402房
    优先权:
    专利代理机构: 代理人:
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201710049958.3

    授权公告号:

    |||

    法律状态公告日:

    2017.07.04|||2017.06.09

    法律状态类型:

    实质审查的生效|||公开

    摘要

    本发明公开了一种利用分块运算的图像拼接方法,包括如下步骤:获取多路摄像头拍摄的原始图像以及预设坐标映射表;基于预设坐标映射表,确定全景图像与原始图像像素点坐标之间的对应关系,利用分块运算将原始图像分割成大小一致的许多小块;对分块插值后的原始图像,将每个小块中像素点的像素值进行投影映射,并根据映射结果得到最后的全景图像;本发明对分割好的源图像块进行操作,以每个块为单位,找到对应关系,依据目标像素点所在的位置将源像素点的像素值投影到目标像素点中,就得到了待处理图片对应的全景图片?;谝糯惴ǖ姆挚樵怂憬档土朔挚榈娜哂嗦?,使基于分块运算的全景图像拼接方法在FPGA上处理速度大幅度提高。

    权利要求书

    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))-1
    Xmax=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:建立适度值评估函数即目标优化函数对可行性解进行评估,并记录下每个可行
    性解的适应度值,目标优化函数如下所示:
    <mfenced open = "" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>min</mi> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>Index</mi> <mi>i</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mi>s</mi> <mo>.</mo> <mi>t</mi> </mrow> </mtd> <mtd> <mrow> <msub> <mi>E</mi> <mrow> <mi>p</mi> <mi>i</mi> <mi>x</mi> <mi>e</mi> <mi>l</mi> <mo>_</mo> <mi>p</mi> <mi>o</mi> <mi>s</mi> <mi>i</mi> <mi>t</mi> <mi>i</mi> <mi>o</mi> <mi>n</mi> </mrow> </msub> <mo>&SubsetEqual;</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <mi>F</mi> <mrow> <mo>(</mo> <msub> <mi>box</mi> <mrow> <mi>x</mi> <mi>j</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>box</mi> <mrow> <mi>y</mi> <mi>j</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced>
    其中:

    <mrow> <mi>F</mi> <mrow> <mo>(</mo> <msub> <mi>box</mi> <mrow> <mi>x</mi> <mi>i</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>box</mi> <mrow> <mi>y</mi> <mi>i</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munder> <munder> <mrow> <mi></mi> <mo>&cup;</mo> </mrow> <mrow> <msub> <mi>box</mi> <mrow> <mi>x</mi> <mi>i</mi> </mrow> </msub> <mo>&le;</mo> <mi>x</mi> <mo>&le;</mo> <msub> <mi>box</mi> <mrow> <mi>x</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <mi>b</mi> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> </mrow> </munder> <mrow> <msub> <mi>box</mi> <mrow> <mi>y</mi> <mi>i</mi> </mrow> </msub> <mo>&le;</mo> <mi>y</mi> <mo>&le;</mo> <msub> <mi>box</mi> <mrow> <mi>y</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <mi>b</mi> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>box</mi> <mrow> <mi>x</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <mi>x</mi> <mo>,</mo> <msub> <mi>box</mi> <mrow> <mi>y</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow>
    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:对每个块中的非整数坐标进行双立方差值运算,得到整数像素值;
    双立方插值算法的计算公式如下:
    <mrow> <mi>P</mi> <mrow> <mo>(</mo> <msup> <mi>i</mi> <mo>&prime;</mo> </msup> <mo>,</mo> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>m</mi> <mo>=</mo> <mo>-</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>n</mi> <mo>=</mo> <mo>-</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <mi>P</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> <mi>R</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>-</mo> <mi>d</mi> <mi>x</mi> <mo>)</mo> </mrow> <mi>R</mi> <mrow> <mo>(</mo> <mi>d</mi> <mi>y</mi> <mo>-</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow>
    其中,(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)处的像素值,α表示加权系数。
    2.根据权利要求1所述的利用分块运算的图像拼接方法,其特征在于,所述S2021中M的
    取值范围为1000~10000。
    3.根据权利要求1所述的利用分块运算的图像拼接方法,其特征在于,所述S2021中每
    个块的大小是(128×128),块数的取值范围为300~500。
    4.根据权利要求1所述的利用分块运算的图像拼接方法,其特征在于,所述S301中的重
    叠区域的取值范围为32~128。
    5.根据权利要求1所述的利用分块运算的图像拼接方法,其特征在于,所述S203中插值
    表达式采用B样条曲线表达式进行插值,数学公式如下:
    <mrow> <mi>R</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mfrac> <mn>2</mn> <mn>3</mn> </mfrac> <mo>+</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>|</mo> <mi>x</mi> <msup> <mo>|</mo> <mn>3</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mtd> <mtd> <mrow> <mn>0</mn> <mo>&lt;</mo> <mo>&lt;</mo> <mo>|</mo> <mi>x</mi> <mo>|</mo> <mo>&lt;</mo> <mo>&lt;</mo> <mn>1</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mfrac> <mn>1</mn> <mn>6</mn> </mfrac> <msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>-</mo> <mo>|</mo> <mi>x</mi> <mo>|</mo> <mo>)</mo> </mrow> <mn>3</mn> </msup> </mrow> </mtd> <mtd> <mrow> <mn>1</mn> <mo>&lt;</mo> <mo>&lt;</mo> <mo>|</mo> <mi>x</mi> <mo>|</mo> <mo>&lt;</mo> <mo>&lt;</mo> <mn>2</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>.</mo> </mrow>

    说明书

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

    技术领域

    本发明属于图像通信技术领域,涉及鱼眼图像拼接技术领域,尤其涉及一种利用
    分块运算的全景图像实时拼接方法。

    背景技术

    鱼眼图像拼接是一种利用实景图像组成全景空间的技术,目前的鱼眼图像拼接技
    术主要有两种方案:

    第一种方案是用一个常规镜头的投影变换和多项式畸变校正技术用校正模板图
    像对镜头畸变参数进行畸变校正,生成一组中间校正后的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))-1

    Xmax=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样条曲线表达式进行插值,数学公式如
    下:


    本发明以原始图像中分割好的每个块为单位,找到块中源像素点与目标像素点的
    一一对应关系,依据预设的坐标映射表,将源像素点的像素值投影到目标像素点中,就得到
    了与待处理图片对应的全景图片,这种按块的方式进行投影映射,大大的降低了全景拍摄
    过程中的计算量,可有效降低处理过程消耗的资源;进一步地,采用标记原始图像中有效像
    素的区域对原始图像进行分块,可以减少分块算法的冗余;进一步地,利用遗传算法的选
    择、杂交变异等机制以及优化函数在原始图像有效像素区域进行分割,可以得到近似的全
    局最优分块方式?;谝糯惴ǖ姆挚樵怂憬档土朔挚榈娜哂嗦?,使基于分块运算的全景
    图像拼接方法在FPGA上处理速度大幅度提高。

    本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变
    得明显,或通过本发明的实践了解到。

    附图说明

    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
    有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
    发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可
    以根据这些附图获得其他的附图。

    图1是本发明实施例全景图像实时拼接方法的系统流程图;

    图2是本发明实施例中分块运算的流程图;

    图3是本发明实施例中双立方插值算法的示意图;

    图4是本发明实施例中像素点投射的流程图。

    具体实施方式

    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
    整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例?;?br />本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
    实施例,都属于本发明?;さ姆段?。

    本发明提供了一种利用分块运算的全景图像实时拼接方法,图1是本发明实施例
    全景图像实时拼接方法的系统流程图。如图1所示,本发明一种利用分块运算的全景图像实
    时拼接方法包括以下步骤:

    S1:获取多路摄像头拍摄的原始图像以及预设坐标映射表。

    首先获得多个摄像头拍摄的原始图像以及预先设计好的坐标映射表,所述多个摄
    像头拍摄的原始图像由至少两张图片水平连接而成,预先设计好的所述坐标映射表保存了
    多个原始图像与经过图像拼接方法形成的全景图像中像素点坐标之间的一对多的对应关
    系,即目标全景图像中的多个像素点坐标通过预设坐标映射表映射到原始图像中的同一个
    像素坐标。需要说明的是,全景拍摄需要满足视域在水平360度和垂直180度的全景覆盖,因
    此,各个原始图片中相邻两张图片之间存在一定的重叠区域。对于重叠区域,预设坐标映射
    表为其保存了两组对应关系。预设坐标映射表的数值与每个镜头的校正参数(例如:镜头偏
    心、相机三维姿态、镜头畸变、拍摄深度等)有关,为了尽可能地减小图片处理过程中的计算
    量,本发明实施例中预设坐标映射表在全景拍摄之前就设计完备。在全景图像拼接过程中,
    在线实时查找预设坐标映射表进行映射拼接获得全景图片。

    S2:基于预设坐标映射表,确定全景图像与原始图像像素点坐标之间的对应关系,
    利用分块运算将原始图像分割成大小一致的许多小块。本发明实施例中分块运算的流程图
    如图2所示,具体包括如下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,原则就
    是将小数坐标的X和Y值分别向下取整减一以及向上取整加一,用公式表示如下:

    Xmin=floor(Lut_x(x,y))-1,Ymin=floor(Lut_y(x,y))-1

    Xmax=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个最值对应到原始图像中框定一个矩形区域,将这个矩形区域标
    记为包含原始图像中有效像素点的区域。

    在步骤S201中,利用预设的坐标映射表,将目标像素点映射到原始图像中。因为坐
    标不一定是整数,在对原始图像进行分块前,需要将所有目标像素点映射到原始图像中的
    小数坐标转换成整数坐标。以确保对原始图像进行分块时每个块的形状固定不变。采用标
    记原始图像中有效像素点的区域可以减少了分块算法冗余,同时使接下来对原始图像的分
    块的步骤更加简单。

    S202:利用遗传算法将原始图像分割成大小相同的块。具体包括S2021、S2022、
    S2023S2024。

    对原始图像进行分块的原则就是使分块的数量以及每个块之间的重叠像素点个
    数尽可能少,这实际上是全局优化问题。本实施例中采用遗传算法对原始图像进行分块,遗
    传算法模拟一个人工种群的进化过程,并且通过选择,杂交以及变异等机制,种群经过若干
    代以后,总是达到最优或近似最优的状态。

    S2021:在S201步标记的包含原始图像有效像素点的区域中,随机初始化M个初始
    个体即M个可行性解,M的取值依据所要解决的问题规模有所不同,在本实施例中M的取值范
    围为1000~10000。同时,每个个体中包含了N个分割块,每个块用box表示,box里面存储了
    这个块的起始坐标点(boxx,boxy)以及这个块的精准度Index,每个块的大小是固定的,本实
    施例中采用的大小是(128×128),每个个体中包含的块数也是固定的,取值范围为300~
    500。将这N个box中的起始坐标依次连接在一起构成一个二维数组Cordination,长度为N×
    2;将这N个box中的Index依次连接在一起构成一个一维数组Available,大小为N。
    Cordination和Available一起描述了遗传算法的一个可行性解,可行性解的表示方法如
    下:

    Cordination={(boxx1,boxy1)(boxx2,boxy2),......,(boxxN,boxyN)}

    Available=(Index1,Index2,......,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进行优
    化,当目标函数值小于设定的阈值时停止迭代,得到全局最优解。

    在步骤S202中,利用遗传算法的基本思想分割原始图像,首先选定原始图像中有
    效像素点所在的矩形区域,接着对该矩形块进行随机分割,利用选择、杂交变异等机制以及
    优化函数进行优化达到全局最优?;谝糯惴ǖ姆挚樵怂憬档土朔挚榈娜哂嗦?,是基于
    分块运算的全景图像拼接方法在FPGA上处理速度大幅度提高,此外,分块算法只与预设的
    坐标映射表有关,与原始图像的内容没有关系,因此也可以在全景拍摄之前设计好。

    S203:对每个块中的非整数坐标进行双立方差值运算,得到整数像素值。

    对S202步将原始图像分割好的每个块,由于目标像素点坐标映射到源图像中得到
    的坐标值不一定是整数,非整数坐标下对应的像素值就表现为小数,考虑到图像的像素值
    是用整数值表示的,因此需要对得到的非整数坐标进行差值运行,生成非整数坐标下的整
    数像素值,本实施例中采用双立方插值算法生成整数像素值,双立方插值算法的示意图如
    图3所示。双立方插值算法的计算公式如下:


    其中,(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(.)表示插值表达式,可以基于三角取值、Bell分布表达式、B样条曲线表达
    式,本实施例中采用B样条曲线表达式进行插值,数学公式如下:


    利用双立方插值对全景图像中每一个目标像素点进行投影映射后,保存目标像素
    点与原始图像中有效像素的对应关系,目标像素点与源像素点的对应关系在全景图像中的
    重叠区域是一种一对二的关系,在其他区域是一对一的关系。

    在步骤S203中,由于映射到源图像中的坐标不一定是整数坐标,这时候对应的像
    素值不一定是整数,因此需要进行插值运算,本实施例中采用双立方插值算法可以在插值
    过程保留更多的图像细节,让插值后的图像和源图像相比效果更加真实。

    S3:对分块插值后的原始图像,将每个小块中像素点的像素值进行投影映射,并根
    据映射结果得到最后的全景图像。

    如上文所述,对原始图像分好块后,以每个块为单位进行处理,每个块中保存了目
    标像素点对应的源像素点,将每个块的像素值投影到目标图像对应坐标中,进而生成全景
    图片。本发明实施例中像素点投射的流程图如图4所示,具体包括如下步骤:

    S301:判断所述目标像素点是否位于重叠区域。

    为了确保全景拍摄实现水平360度和垂直180度的全景覆盖,相邻相机所拍原始图
    片之间会存在一定的重叠区域,在本实施例中,重叠区域的取值范围为32~128。在生成全
    景图片时,根据目标像素点所在位置的不同,存在不同的映射方式。本发明实施例判断目标
    像素点是否位于重叠区域的方式可简述为:判断利用所述目标像素点确定出的所述源像素
    点的数目是否为一;如果所述数目为一,则判定所述目标像素点未位于所述重叠区域;否则
    判定所述目标像素点位于所述重叠区域。如果目标像素点没有位于所述重叠区域,则执行
    S302;如果目标像素点位于所述重叠区域,则执行S303。

    S302:获取所述源像素点的像素值进行投射,以获得所述全景图片。

    目标像素点没有位于重叠区域,也就是说,经S302仅为该目标像素点查找到一个
    对应的源像素点,对应于此,可获取该源像素点的像素值,并将该像素值投射到目标像素
    点。

    S303:获取所述源像素点的混合像素值进行投射,以获得所述全景图片。

    目标像素点位于重叠区域,也就是说,经S302为该目标像素点查找到两个对应的
    源像素点,对应于此,可获取这两个源像素点的像素值,并得到二者的混合像素值,将该混
    合像素值投射到目标像素点。在本发明实施例中,采用线性加权的方法对两个源像素点的
    像素值做α混合得到混合像素值,计算方法如下:

    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)处的像素值,α表示加权系
    数。

    在步骤S3中,对分割好的源图像块进行操作,以每个块为单位,找到块中源图像像
    素点与目标图像像素点的一一对应关系,依据目标像素点所在的位置将源像素点的像素值
    投影到目标像素点中,就得到了待处理图片对应的全景图片。这种按块的方式进行投影映
    射,大大的降低了全景拍摄过程中的计算量,可有效降低处理过程消耗的资源。

    综上所述,本发明以原始图像中分割好的每个块为单位,找到块中源像素点与目
    标像素点的一一对应关系,依据预设的坐标映射表,将源像素点的像素值投影到目标像素
    点中,就得到了与待处理图片对应的全景图片,这种按块的方式进行投影映射,大大的降低
    了全景拍摄过程中的计算量,可有效降低处理过程消耗的资源;进一步地,采用标记原始图
    像中有效像素的区域对原始图像进行分块,可以减少分块算法的冗余;进一步地,利用遗传
    算法的选择、杂交变异等机制以及优化函数在原始图像有效像素区域进行分割,可以得到
    近似的全局最优分块方式?;谝糯惴ǖ姆挚樵怂憬档土朔挚榈娜哂嗦?,使基于分块运
    算的全景图像拼接方法在FPGA上处理速度大幅度提高。

    以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权
    利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

    关于本文
    本文标题:一种利用分块运算的图像拼接方法.pdf
    链接地址://www.4mum.com.cn/p-6021188.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 包平特稳赚三期内必开一期 3d怎么玩稳赚不赔 pk10助赢免费手机软件 十分快三计划技巧规律如何找 pk10精准计划软件手机 不犯法网赚每天稳赚五百块 重庆时时最新开奖记录 付费彩票计划软件大全 双色球大乐透软件 一分钟快三大小单双回血技巧 pk10刷水方案 黑龙江时时11 3d技巧准确率99 北京pk 10走势图 福彩投注app 重号追号打法投任七