一种二维序列帧图片拼接成大图片的方法及其所用的装置制造方法

文档序号:6630135阅读:361来源:国知局
一种二维序列帧图片拼接成大图片的方法及其所用的装置制造方法
【专利摘要】本发明公开了一种二维序列帧图片拼接成大图片的方法,包括如下步骤:(1)计算各个二维序列帧图片的最小包围矩形;(2)根据步骤(1)得到的全部图片的最小包围矩形集合,按照各个最小包围矩形的宽度递增排序;(3)将步骤(2)得到的以宽度递增排序的序列帧最小包围矩形集合中的各个最小包围矩形按顺序依次拼接到大矩形中,并记录拼接时各个最小包围矩形在大矩形中的偏移信息及序列帧索引;(4)按照得到的偏移信息及序列帧索引,渲染序列帧到大矩形中得到大图片。本发明还公开了上述方法所用的装置,包括最小包围矩形计算模块、排序模块、拼接模块、渲染模块四个模块。本发明优点:降低了计算机内存占有量,且全程自动化,效率高。
【专利说明】一种二维序列帧图片拼接成大图片的方法及其所用的装置

【技术领域】
[0001]本发明涉及图形处理【技术领域】,尤其涉及的是一种二维序列帧图片拼接成大图片的方法及其所用的装置。

【背景技术】
[0002]二维图片序列帧大量应用于计算机渲染中,在游戏领域,当播放角色跑步、战斗等动作时,或者展示一个场景特效时都需要播放序列帧,这些图片以固定的频率快速切换,形成了动画。这都需要大量的序列帧图片,每张图片尺寸都不大,并且每张图片都会有很多透明的像素。传统的做法是每张图片在计算机中存成独立的一个文件,而播放动画又意味着需要的序列帧图片非常多,故这种方式会造成大量的计算机内存的浪费以及效率的低下,当同时播放的序列帧动画过多时,就会造成系统的卡顿。由于传统的方法存在这样的缺陷,而序列帧动画又用的如此的频繁,因此急需一种智能的二维序列帧图片拼接成大图片的方法,将有助于降低序列帧动画的内存开销。


【发明内容】

[0003]本发明的目的在于克服现有技术的不足,提供了一种二维序列帧图片拼接成大图片的方法及其所用的装置,使同屏序列帧动画可以更多的展示,并降低计算机内存占用量。
[0004]本发明是通过以下技术方案实现的:
[0005]一种二维序列帧图片拼接成大图片的方法,包括如下步骤:
[0006](I)计算各个二维序列帧图片的最小包围矩形,得到全部图片的最小包围矩形集合;
[0007](2)根据步骤(I)得到的全部图片的最小包围矩形集合,按照各个最小包围矩形的宽度递增排序,得到以宽度递增排序的序列帧最小包围矩形集合;
[0008](3)将步骤⑵得到的以宽度递增排序的序列帧最小包围矩形集合中的各个最小包围矩形按顺序依次拼接到大矩形中,并记录拼接时各个最小包围矩形在大矩形中的偏移信息及序列帧索引;
[0009](4)按照步骤(3)得到的全部的最小包围矩形在大矩形中的偏移信息及序列帧索弓丨,渲染序列帧到大矩形中得到大图片。
[0010]作为上述的一种二维序列帧图片拼接成大图片的方法的优选实施方式,所述步骤
(I)中的计算方法具体为:每个二维图片的宽度和高度分别对应二维空间的X、Y两个坐标系,以Y方向作为行遍历,X方向作为列遍历,取得行列值最小的非透明像素点作为做最小包围矩形的左上角,取得行列值最大的非透明像素点作为做最小包围矩形的右下角,这两个角确定的区域即为该张二维图片的最小包围矩形。
[0011]作为上述的一种二维序列帧图片拼接成大图片的方法的优选实施方式,所述步骤
(3)中拼接过程采用二叉树递归方式逐个将最小包围矩形拼接到大矩形中。
[0012]作为上述的一种二维序列帧图片拼接成大图片的方法的优选实施方式,所述步骤(4)具体过程为:根据步骤(3)得到的全部的最小包围矩形在大矩形中的偏移信息及序列帧索引,调用渲染函数把二维图片中最小包围矩形描述的像素渲染到大图片中。
[0013]本发明还提供了上述的一种二维序列帧图片拼接成大图片的方法所用的装置,包括如下四个模块:
[0014]最小包围矩形计算模块:用于计算各个二维序列帧图片的最小包围矩形,得到全部图片的最小包围矩形集合;
[0015]排序模块:根据得到的全部图片的最小包围矩形集合,按照各个最小包围矩形的宽度递增排序,得到以宽度递增排序的序列帧最小包围矩形集合;
[0016]拼接模块:将得到的以宽度递增排序的序列帧最小包围矩形集合中的各个最小包围矩形按顺序依次拼接到大矩形中,并记录拼接时各个最小包围矩形在大矩形中的偏移信息及序列帧索引;
[0017]渲染模块:根据拼接模块得到的全部的最小包围矩形在大矩形中的偏移信息及序列帧索引,渲染序列帧到大矩形中得到大图片。
[0018]作为上述的一种二维序列帧图片拼接成大图片的方法所用的装置的优选实施方式,所述最小包围矩形计算模块包括:
[0019]像素识别单元:在Y方向作为行遍历,X方向作为列遍历过程中,取得对应二维图片像素点的颜色分量值(A,R,G,B),当A分量非零时,则为非透明像素;
[0020]边界识别单元:负责计算出最左上角的非透明像素和最右下角的非透明像素位置,通过四次遍历确定最小包围矩形的顶边界、左边界、右边界、底边界;
[0021]矩形构造单元:根据边界识别单元计算得到的最小包围矩形的顶边界、左边界、右边界、底边界这四个值生成最小包围矩形的数据结构。
[0022]作为上述的一种二维序列帧图片拼接成大图片的方法所用的装置的优选实施方式,所述拼接模块包括:
[0023]拼接矩形单元:采用二叉树递归方式逐个将最小包围矩形拼接到大矩形中;
[0024]偏移计算单元:用于计算拼接时最小包围矩形在大矩形中的偏移信息;
[0025]序列帧索引计算单元:用于计算拼接时最小包围矩形在大矩形中的序列帧索引。
[0026]作为上述的一种二维序列帧图片拼接成大图片的方法所用的装置的优选实施方式,所述渲染模块包括:
[0027]布局单元:其根据拼接模块得到的拼接时全部最小包围矩形在大矩形中的偏移信息,将各序列帧图片在大图片上的布局位置描述出来;
[0028]渲染单元:其调用渲染函数把二维图片中最小包围矩形描述的像素渲染到大图片中。
[0029]本发明相比现有技术具有以下优点:
[0030]本发明提供了一种二维序列帧图片拼接成大图片的方法及其所用的装置,将每张二维序列帧图片的最小包围矩形计算出来,有效的降低了计算机内存占有量;通过对最小包围矩形按宽度递增排序,有助于在接下来的拼接过程中一张大图片能容纳更多的序列帧图片,进一步优化计算机内存占用量;通过二叉树递归方式将按照宽度递增排序的最小包围矩形依次拼接到大矩形中,最终调用渲染函数把有效像素渲染到目标大图片中,整个过程摒弃了人工的干预,全程自动化,有效地降低了人工误操作空间以及大量的人工时间开销,成本低、效率高。

【专利附图】

【附图说明】
[0031]图1是本发明的方法流程图。
[0032]图2是本发明的装置组成框架图。
[0033]图3是拼接模块的结构组成框图。
[0034]图4是最小包围矩形计算模块的结构组成框图。
[0035]图5是渲染模块的结构组成框图。
[0036]图6为本发明的方法中将第一个最小包围矩形拼接到大矩形中的结构示意图。
[0037]图7为本发明的方法中将第二个最小包围矩形拼接到大矩形中的结构示意图。
[0038]图8为图6中拼接第一个最小包围矩形后二叉树的分支情况示意图。
[0039]图9为图7中拼接第二个最小包围矩形后二叉树的分支情况示意图。

【具体实施方式】
[0040]下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0041]参见图1,本实施例提供的一种二维序列帧图片拼接成大图片的方法,包括如下步骤:
[0042]100、计算各个二维序列帧图片的最小包围矩形,得到全部图片的最小包围矩形集口 ο
[0043]200、根据步骤100得到的全部图片的最小包围矩形集合,按照各个最小包围矩形的宽度递增排序,得到以宽度递增排序的序列帧最小包围矩形集合;
[0044]300、将步骤200得到的以宽度递增排序的序列帧最小包围矩形集合中的各个最小包围矩形按顺序依次拼接到大矩形中,并记录拼接时各个最小包围矩形在大矩形中的偏移信息及序列帧索引;
[0045]400、按照步骤300得到的全部的最小包围矩形在大矩形中的偏移信息及序列帧索引,渲染序列帧到大矩形中得到大图片。其具体过程为:根据步骤300得到的全部的最小包围矩形在大矩形中的偏移信息及序列帧索引,调用渲染函数把二维图片中最小包围矩形描述的像素渲染到大图片中。
[0046]其中,步骤100的计算方法具体为:序列帧是多张二维图片的集合,每个二维图片的宽度和高度分别对应二维空间的Χ、γ两个坐标系,以Y方向作为行遍历,X方向作为列遍历,取得行列值最小的非透明像素点作为做最小包围矩形的左上角,取得行列值最大的非透明像素点作为做最小包围矩形的右下角,这两个角确定的区域即为该张二维图片的最小包围矩形。然后以此类推,逐一计算每张序列帧图片,就可以得到全部图片的最小包围矩形隹A
口 O
[0047]步骤300中其拼接过程采用二叉树递归方式逐个将最小包围矩形拼接到大矩形中。举例如下:
[0048]如图6所示,要把第一个最小包围矩形I放入大矩形中,用线A将大矩形切分为上下两部分,A的上部分为B,A的下部分为空闲。再切分B,B的左边放下第一个最小包围矩形1,B的右边为空闲,至此,成功放入第一个最小包围矩形I ;
[0049]如图7所示,然后再放入第二个最小包围矩形2,同样的二叉树递归过程,首先尝试放入A的上部分,A的上部分是B,继续尝试放入B的左边,B的左边已经放了第一个最小包围矩形1,所以只能再次尝试放入B的右边,B的右边容纳不下第二个最小包围矩形2,继续尝试A的下部分,可以容纳了,划线C,切分为C的左侧和C的右侧,尝试插入C的左侧,划线D,分为D的上侧和D的下侧,D的上侧恰好容纳第二个最小包围矩形2,至此,成功放入第二个最小包围矩形2,D的下侧为空闲,C的右侧为空闲;
[0050]其中,拼接第一个最小包围矩形I后二叉树的分支情况如图8所示,拼接第二个最小包围矩形2后二叉树的分支情况如图9所示;
[0051]同理,接下来的第三个最小包围矩形、第四个最小包围矩形、第五个最小包围矩形直到第N个最小包围矩形都执行这个流程,即可完成整个拼接过程;
[0052]关于切分时先横切还是先竖切的选择策略问题,采用的方案如下:根据大矩形中放入最小包围矩形后剩余空闲矩形的宽度和高度做决定,如果宽度大于等于高度,则竖切;反之如果宽度小于高度,则横切。这个选择策略的意义在于尽量保证大矩形中剩余矩形的尺寸趋向于正方形,以便于在接下来的拼接中容纳更多的最小包围矩形。
[0053]参见图2,本实施例还提供了上述的一种二维序列帧图片拼接成大图片的方法所用的装置,包括如下四个模块:
[0054]最小包围矩形计算模块10:用于计算各个二维序列帧图片的最小包围矩形,得到全部图片的最小包围矩形集合;
[0055]排序模块20:根据得到的全部图片的最小包围矩形集合,按照各个最小包围矩形的宽度递增排序,得到以宽度递增排序的序列帧最小包围矩形集合;
[0056]拼接模块30:将得到的以宽度递增排序的序列帧最小包围矩形集合中的各个最小包围矩形按顺序依次拼接到大矩形中,并记录拼接时各个最小包围矩形在大矩形中的偏移信息及序列帧索引;
[0057]渲染模块40:根据拼接模块30得到的全部的最小包围矩形在大矩形中的偏移信息及序列帧索引,渲染序列帧到大矩形中得到大图片。
[0058]参见图4,最小包围矩形计算模块10包括:
[0059]像素识别单元101:在Y方向作为行遍历,X方向作为列遍历过程中,取得对应二维图片像素点的颜色分量值(A,R,G,B),当A分量非零时,则为非透明像素;
[0060]边界识别单元102:负责计算出最左上角的非透明像素和最右下角的非透明像素位置,通过四次遍历确定边界,即:
[0061]通过行从上至下遍历,计算出最小包围矩形的顶边界,
[0062]通过行从下至上遍历,计算出最小包围矩形的底边界,
[0063]通过列从左至右遍历,计算出最小包围矩形的左边界,
[0064]通过列从右至左遍历,计算出最小包围矩形的右边界;
[0065]矩形构造单元103:根据边界识别单元102计算得到的最小包围矩形的顶边界、左边界、右边界、底边界这四个值生成最小包围矩形的数据结构。
[0066]参见图3,拼接模块30包括:
[0067]拼接矩形单元301:采用二叉树递归方式逐个将最小包围矩形拼接到大矩形中;
[0068]偏移计算单元302:用于计算拼接时最小包围矩形在大矩形中的偏移信息;
[0069]序列帧索引计算单元303:用于计算拼接时最小包围矩形在大矩形中的序列帧索引。
[0070]参见图5,渲染模块40包括:
[0071]布局单元401:其根据拼接模块30得到的拼接时全部最小包围矩形在大矩形中的偏移信息,将各序列帧图片在大图片上的布局位置描述出来;
[0072]渲染单元402:其调用渲染函数把二维图片中最小包围矩形描述的像素渲染到大图片中。
[0073]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种二维序列帧图片拼接成大图片的方法,其特征在于,包括如下步骤: (1)计算各个二维序列帧图片的最小包围矩形,得到全部图片的最小包围矩形集合; (2)根据步骤(I)得到的全部图片的最小包围矩形集合,按照各个最小包围矩形的宽度递增排序,得到以宽度递增排序的序列帧最小包围矩形集合; (3)将步骤(2)得到的以宽度递增排序的序列帧最小包围矩形集合中的各个最小包围矩形按顺序依次拼接到大矩形中,并记录拼接时各个最小包围矩形在大矩形中的偏移信息及序列帧索引; (4)按照步骤(3)得到的全部的最小包围矩形在大矩形中的偏移信息及序列帧索引,渲染序列帧到大矩形中得到大图片。
2.如权利要求1所述的一种二维序列帧图片拼接成大图片的方法,其特征在于,所述步骤(I)中的计算方法具体为:每个二维图片的宽度和高度分别对应二维空间的X、Y两个坐标系,以Y方向作为行遍历,X方向作为列遍历,取得行列值最小的非透明像素点作为做最小包围矩形的左上角,取得行列值最大的非透明像素点作为做最小包围矩形的右下角,这两个角确定的区域即为该张二维图片的最小包围矩形。
3.如权利要求1所述的一种二维序列帧图片拼接成大图片的方法,其特征在于,所述步骤(3)中拼接过程采用二叉树递归方式逐个将最小包围矩形拼接到大矩形中。
4.如权利要求1所述的一种二维序列帧图片拼接成大图片的方法,其特征在于,所述步骤(4)具体过程为:根据步骤(3)得到的全部的最小包围矩形在大矩形中的偏移信息及序列帧索引,调用渲染函数把二维图片中最小包围矩形描述的像素渲染到大图片中。
5.如权利要求1至4任一所述的一种二维序列帧图片拼接成大图片的方法所用的装置,其特征在于,包括如下四个模块: 最小包围矩形计算模块:用于计算各个二维序列帧图片的最小包围矩形,得到全部图片的最小包围矩形集合; 排序模块:根据得到的全部图片的最小包围矩形集合,按照各个最小包围矩形的宽度递增排序,得到以宽度递增排序的序列帧最小包围矩形集合; 拼接模块:将得到的以宽度递增排序的序列帧最小包围矩形集合中的各个最小包围矩形按顺序依次拼接到大矩形中,并记录拼接时各个最小包围矩形在大矩形中的偏移信息及序列帧索引; 渲染模块:根据拼接模块得到的全部的最小包围矩形在大矩形中的偏移信息及序列帧索引,渲染序列帧到大矩形中得到大图片。
6.如权利要求5所述的一种二维序列帧图片拼接成大图片的方法所用的装置,其特征在于,所述最小包围矩形计算模块包括: 像素识别单元:在Y方向作为行遍历,X方向作为列遍历过程中,取得对应二维图片像素点的颜色分量值(A,R,G,B),当A分量非零时,则为非透明像素; 边界识别单元:负责计算出最左上角的非透明像素和最右下角的非透明像素位置,通过四次遍历确定最小包围矩形的顶边界、左边界、右边界、底边界; 矩形构造单元:根据边界识别单元计算得到的最小包围矩形的顶边界、左边界、右边界、底边界这四个值生成最小包围矩形的数据结构。
7.如权利要求5所述的一种二维序列帧图片拼接成大图片的方法所用的装置,其特征在于,所述拼接模块包括: 拼接矩形单元:采用二叉树递归方式逐个将最小包围矩形拼接到大矩形中; 偏移计算单元:用于计算拼接时最小包围矩形在大矩形中的偏移信息; 序列帧索引计算单元:用于计算拼接时最小包围矩形在大矩形中的序列帧索引。
8.如权利要求5所述的一种二维序列帧图片拼接成大图片的方法所用的装置,其特征在于,所述渲染模块包括: 布局单元:其根据拼接模块得到的拼接时全部最小包围矩形在大矩形中的偏移信息,将各序列帧图片在大图片上的布局位置描述出来; 渲染单元:其调用渲染函数把二维图片中最小包围矩形描述的像素渲染到大图片中。
【文档编号】G06T3/40GK104318538SQ201410541625
【公开日】2015年1月28日 申请日期:2014年10月14日 优先权日:2014年10月14日
【发明者】杨剑 申请人:安徽游艺道网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1