生成合成图片的方法及装置与流程

文档序号:11833034阅读:324来源:国知局
生成合成图片的方法及装置与流程

本申请涉及图像处理技术领域,尤其涉及一种生成合成图片的方法及装置。



背景技术:

基于互联网的推广活动经常采用在网页、社交平台上展示或扩散图片的形式。始终采用同一张图片容易造成用户的心理疲劳,需要经常变化展示的图片来达到更好的效果。

用于推广活动的图片通常是合成背景图像和前景元素而生成的图片。现有技术中,往往采用单一模板的方式来将背景图像和前景元素合成为一张图片,即将前景元素按照固定的位置绘制在固定的一张背景图像上。更改图片需要美工人员重新生成模板、或者修改背景图像、或者修改前景元素,耗时长效率低,难以满足一些推广活动在短时间内生成大量合成图片的需求。



技术实现要素:

有鉴于此,本申请提供一种生成合成图片的方法,包括:

基于背景图集,确定合成图片的背景图像;

在背景图像上为前景元素划分子区域;每个子区域用于显示至少一个前景元素;

在子区域内确定所述子区域的前景元素的显示形状;

按照所述显示形状在所述子区域内绘制对应的前景元素。

本申请还提供了一种生成合成图片的装置,包括:

背景图像确定单元,用于基于背景图集,确定合成图片的背景图像;

子区域划分单元,用于在背景图像上为前景元素划分子区域;每个子区域用于显示至少一个前景元素;

显示形状确定单元,用于在子区域内确定所述子区域的前景元素的显示形状;

前景元素绘制单元,用于按照所述显示形状在所述子区域内绘制对应的前景元素。

由以上技术方案可见,本申请的实施例中,通过选择背景图像,动态生成子区域和前景元素的显示形状,能够在短时间内自动生成大量具有变化的背景图像、变化的区域布局和变化的前景元素显示形状的合成图片,提高了合成图片的生成效率。

附图说明

图1是本申请实施例中生成合成图片的方法的流程图;

图2是本申请一个例子中一种子区域布局图;

图3是本申请一个例子中另一种子区域布局图;

图4是本申请一个例子中一种文字行的显示形状示意图;

图5是本申请一个例子中一种前景图像的显示形状示意图;

图6是应用本申请实施例的计算设备的一种硬件结构图;

图7是本申请实施例中的一种生成合成图片的装置的逻辑结构图。

具体实施方式

本申请的实施例提出一种新的生成合成图片的方法,采用自动变化的背景图像、自动变化的前景元素的布局和位置来生成合成图片,能够在短时间内生成大量不同的合成图片,以解决现有技术存在的问题。本申请实施例的流程如图1所示。

步骤110,基于背景图集,确定合成图片的背景图像。

通常而言,在合成图片中包括较大区域未被前景元素遮挡的背景图像。未被前景元素遮挡的背景图像区域越大,越易于利用根据背景图像生成的参数来识别合成图片。变化的背景图像将提高合成图片的识别难度。本实施例中,预置背景图集,其中包括至少一张背景图,从背景图集中选择一张背景图,根据选择的背景图来生成合成图片的背景图像。

可以采用多种方式从背景图集中选择一张背景图,例如,可以轮流选择背景图集中的每一张背景图,也可以随机选择背景图集中的一张背景图;可以在合成图片的使用次数达到某个预定值时重新选择背景图,也可以以一定时间为周期来重新选择背景图。

类似的,也可以采用多种方式来根据选择的背景生成合成图片的背景图像。例如,可以直接将选择的背景图作为合成图片的背景图像,也可以将选择的背景图经过特殊处理(如高斯模糊处理、光照处理或蒙版处理)后,再作为合成图片的背景图像;可以采用固定的算法和参数来进行特殊处理,也可以采用随机变化或周期变化的算法和/或参数来进行特殊处理。

选择背景图的方式和生成合成图片背景图像的方式可以任意组合,本实施例中不做限定。

步骤120,在背景图像上为前景元素划分子区域;每个子区域用于显示至少一个前景元素。

在背景图像上划分子区域的方式可以根据各个子区域的前景元素之间的关系和实际应用场景的需求来确定。如果全部前景元素可以任意显示在背景图像上的任意位置,则可以按照前景元素的个数来产生对应个数的子区域,随机确定每个子区域的位置和大小。如果全部或部分前景元素的显示需要满足某些条件(如某一种位置关系或某一种大小比例关系),则可以将关联的前景元素在同一个子区域内显示,或者对显示关联的前景元素的各个子区域的划分施加相应的限制条件。

在一种实现中,可以预置配置文件,在配置文件中描述对子区域划分的限制条件,以满足前景元素的显示要求,配置文件中包括子区域的个数和至 少部分子区域的位置关系,由布局算法利用配置文件来自动生成每个子区域的具体位置。具体而言,从配置文件中获得子区域的个数和位置关系后,根据位置关系计算每个子区域在背景图像上可动态变化的区域,在可动态变化的区域内确定该子区域的顶点位置和大小。具体的布局算法可参照现有技术实现,不再赘述。配置文件中还可以包括子区域的形状、大小的最大值和/或最小值等等,此时需要考虑子区域的形状、大小,和与其他子区域的位置关系,来分配各个子区域可动态变化的区域。在可动态变化的区域内,在满足配置文件的条件下可以任意确定子区域的顶点位置和大小。

例如,配置文件中指定划分3个子区域,并且按照从上到下依次排列子区域一、子区域二和子区域三,则某次运行布局算法生成如图2所示的子区域布局,另一次运行布局算法生成如图3所示的子区域布局。

回到图1,在步骤130,在子区域内确定该子区域的前景元素的显示形状。

前景元素可以是前景图像,也可以是文字行;文字行可以是一个到多个文字单位,文字单位是文字行的组成部分,可以是字词(如汉字、英文单词)、字母、数字和/或符号,也可以是字词、字母或数字中两者或三者的组合。

在子区域内,可以采用不同的形状来显示该子区域的前景元素(即在该子区域内显示的前景元素)。例如,可以设置一个包括原有形状、圆形、方形等形状的集合,从中随机或轮流选择一种作为前景元素的显示形状;在这种实现方式中,如果前景元素是文字行,可以将每个文字显示为选择的形状,也可以将文字排列为所选择的形状。

在另一种实现中,预置若干个曲线函数;预设曲线函数中参数的取值范围,参数的预设范围可以因所适用曲线函数的不同而不同,该预设范围应使得将该参数应用于曲线函数后所生成的显示曲线有部分位于该子区域内。

如果采用该显示曲线的前景元素是文字行,可以在预置的若干个曲线函数中选择一个曲线函数;在预设范围内确定该曲线函数的参数,生成显示曲线;根据文字行中文字单位的数目在显示曲线上抽取对应数目的点作为每个文字单位的顶点位置。例如,对采用图4所示的显示曲线的包括6个汉字的 文字行,可以将显示曲线的横坐标位于该子区域内的部分6等分,以每个等分的起点为横坐标,以该横坐标在显示曲线上的点作为每个汉字的顶点位置。这样,文字行将显示为该显示曲线的形状,请参见图4。

如果采用该显示曲线的前景元素是前景图像,可以在预置的曲线函数中选择至少一个曲线函数;在预设范围内确定所选择曲线函数的参数,生成至少一条显示曲线;在显示曲线上抽取点作为前景图像的顶点位置,以所生成的显示曲线作为前景图像的显示边界。例如,可以选择一条曲线函数,以不同的参数生成两条平行的显示曲线,分别作为前景图像的上下边界(或左右边界),而以抽取的两个点所在的平行于纵轴(或横轴)的直线分别作为前景图像的左右边界(或上下边界);也可以选择两条曲线函数,生成两条相交的显示曲线,分别作为前景图像的上边界和左边界,而前景图像的下边界和右边界则采用该子区域的下边界和右边界,此时需将两条显示曲线的交点作为抽取的顶点位置。

在一些应用场景中,在前景图像绘制在背景图像上后,再在前景图像上绘制文字行。在这种情况下,在显示文字行的前景图像上确定文字行的显示形状,换言之,可以看做以显示文字行的前景图像作为确定该文字行显示形状时的子区域。

步骤140,按照前景元素的显示形状在子区域内绘制对应的前景元素。

对前景图像,如果显示形状与前景图像的原始形状或大小不同,则可以根据所确定的显示形状,对前景图像进行仿射变换、透视变换、和/或缩放变换后,绘制在该子区域内。此外,还可以对前景图像进行颜色变换、旋转、拉伸等处理。本实施例对具体的变换处理方式不做限定。

对文字行,为了降低利用文本检测算法定位文字区域,通过OCR(Optical Character Recognition,光学字符识别)方法分割识别文字,用文字中的关键词屏蔽图片的可能性,可以根据所确定的显示形状,为每个文字添加纹理和/或形变后,再绘制在该子区域内。形变可以是针对文字单位的旋转、拉伸等操作;纹理可以是不同间隔的横竖条纹,也可以是各种曲线条纹;在文字和 条纹交叠的区域显示的可以是背景图像,也可以是前景文字和背景图像的某种颜色融合。本实施例对具体的处理方式不做限定。

可见,本申请的实施例中通过选择背景图像,动态生成子区域和前景元素的显示形状,能够在短时间内生成大量具有变化的背景图像、变化的区域布局和变化的前景元素形状的合成图片,在提高产生合成图片的效率的同时降低了图片多样化的成本。

需要说明的是,本实施例中的方法可以应用在任何计算设备上,如服务器、虚拟机、个人电脑、平板电脑、手机等设备。在客户端/服务器(C/S)模式的应用中,本实施例中的方法可以部分应用在服务器上,部分应用在客户端上,由服务器和客户端协同完成合成图片的生成。

在本申请的一个应用示例中,合成图片由背景图像、前景图像和文字行生成。在服务器上保存用来合成图片的素材,包括由多张背景图组成的背景图集、各个前景图像、各个文字行等,其中,前景图像包括在背景图像上可以动态改变位置的图像,如logo(徽标);文字行可以是将每个文字单位生成一张图像以及这些图像的显示顺序,也可以是文本,在进行文字行绘制时再利用系统字库来将文本转化为图像。此外,在服务器上预置将用来在背景图像上划分子区域的配置文件、用来确定前景元素显示形状的多个曲线函数及其参数的预设取值范围等信息。

当服务器需要生成合成图片时(如接收到客户端获取合成图片的请求、改变合成图片的周期到等等),从背景图集中随机选择一张背景图,对该背景图用随机选择的参数进行高斯模糊处理后将其作为合成图片的背景图像。不同的参数都可以使同一张背景图展现出来不同特征信息的图像,有效降低了背景图像的共性,同时保持美观。

在确定背景图像后,调用布局算法,根据配置文件中子区域的位置关系、各个子区域的大小范围,计算出每个子区域可动态变化的区域,在可动态变化的区域内随机决定该子区域的顶点位置和实际大小(在配置文件中的大小范围内)。从而动态划分出用于显示前景图像和/或文字行的各个子区域,来 决定将要展现的前景元素放置在背景图像中的哪个位置。整个背景图像确定合成图片的整体风格,各子区域的位置和大小确定合成图片排版。

每个子区域的前景元素可以是文字行,可以是单张到多张前景图像,还可以是文字行与前景图像的组合。在子区域中绘制前景元素时,对文字行,从保存的多个曲线函数中随机选择其中的一个曲线函数,在该曲线函数的参数取值范围内随机确定参数值,将参数值应用于该曲线函数生成显示曲线。通过在显示曲线上抽取点坐标,可以得到文字行中每个文字单位的顶点坐标。基于每个文字单位的顶点坐标,将该文字单位经过形变和纹理等处理后,以一定的大小绘制在背景图像上对应的位置。

对前景图像,从保存的多个曲线函数中随机选择其中的一个曲线函数,在该曲线函数的参数取值范围内随机确定参数值,将参数值应用于该曲线函数生成第一条显示曲线,将该显示曲线平移一定距离后作为第二条显示曲线(或者说以另一个参数值生成第二条显示曲线),在第一条显示曲线上抽取两个点作为前景图像的两个顶点位置;将这两个点平移到第二条显示曲线上来作为前景图像的另外两个顶点位置,以两个顶点位置之间的第一条显示曲线和另外两个顶点位置之间的第二条显示曲线作为前景图像的两个显示边界,例如图5所示,其中的阴影部分为前景图像的显示形状,阴影部分的上边界和下边界各为一条显示曲线。在确定前景图像的显示形状后,按照显示形状对前景图像进行变形处理,绘制在背景图像中的对应位置。

经过上述步骤,即可生成具有变化的背景图像、变化的布局和变化的前景元素形状及展现形式的合成图片。

与上述流程实现对应,本申请的实施例还提供了一种生成合成图片的装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在计算设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图6所示的CPU、内存以及非易失性存储器之外,生成合成图片的装置所在的设备通常还包括用于实现网络通信功 能的板卡等其他硬件。

图7所示为本实施例提供的一种生成合成图片的装置,包括背景图像确定单元、子区域划分单元、显示形状确定单元和前景元素绘制单元,其中:背景图像确定单元用于基于背景图集,确定合成图片的背景图像;子区域划分单元用于在背景图像上为前景元素划分子区域;每个子区域用于显示至少一个前景元素;显示形状确定单元用于在子区域内确定所述子区域的前景元素的显示形状;前景元素绘制单元用于按照所述显示形状在所述子区域内绘制对应的前景元素。

可选的,所述子区域划分单元可以进一步包括位置关系获取模块、动态区域计算模块和子区域位置及大小模块,其中:位置关系获取模块,用于从配置文件中获取子区域的个数和至少部分子区域的位置关系;动态区域计算模块用于根据所述位置关系计算每个子区域在背景图像上可动态变化的区域;子区域位置及大小模块用于在所述可动态变化的区域内确定所述子区域的顶点位置和大小。

一种实现中,所述前景元素包括前景图像;所述显示形状确定单元包括第一曲线函数选择模块、第一显示曲线生成模块和前景图像形状模块,其中:第一曲线函数选择模块用于在预置的若干个曲线函数中选择至少一个曲线函数;第一显示曲线生成模块用于在预设范围内确定所述曲线函数的参数,生成至少一条显示曲线;前景图像形状模块用于在显示曲线上抽取点作为所述前景图像的顶点位置,以所述显示曲线作为所述前景图像的显示边界。

可选的,所述前景元素包括前景图像;所述前景元素绘制单元具体用于:根据所述显示形状,对前景图像进行仿射变换、透视变换、和/或缩放变换后,绘制在所述子区域内。

可选的,所述前景元素包括文字行;所述显示形状确定单元包括第二曲线函数选择模块、第二显示曲线生成模块和文字行形状模块,其中:第二曲线函数选择模块用于在预置的若干个曲线函数中选择一个曲线函数;第二显示曲线生成模块用于在预设范围内确定所述曲线函数的参数,生成显示曲线; 文字行形状模块用于根据文字行中文字单位的数目在显示曲线上抽取对应数目的点作为每个文字单位的顶点位置。

可选的,所述前景元素绘制单元具体用于:根据所述显示形状,为文字行的每个文字单位添加纹理和/或形变后,绘制在所述子区域内。

需要说明的是,本申请实施例中的装置可以分散在两个或多个设备上实现,如分散在客户端设备和服务器上实现。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、 方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1