动画生成方法、装置、电子设备及计算机可读存储介质
技术领域
本公开实施例涉及图像处理技术领域,具体而言,本公开涉及一种动画生成方法、装置、电子设备及计算机可读存储介质。
背景技术
图片是客观对象的一种相似性的、生动性的描述或写真,是人类社会活动中最常用的信息载体。在分享信息的过程中,文字信息的描述能力有限,而图片则具有生动形象、信息量大的优点。
本公开的发明人在具体实施过程中,发现:目前针对多张图片的展示技术比较丰富,如影集合成、多张图片循环显示等,但是对于单张图片的展示过于单调,一般是对单张图片进行静态编辑,或者是在图片中添加动态素材等,但对图片内容本身没有产生新的动态效果。
发明内容
本公开实施例的目的旨在至少能解决上述的技术缺陷之一,特提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
一方面,提供了一种动画生成方法,包括:
将原始四通道图像处理为原始单通道图像,并将原始单通道图像处理为二值化单通道图像;
确定二值化单通道图像中的目标图像的轮廓集合,轮廓集合包括至少两个轮廓;
根据轮廓集合,确定轮廓坐标点集合和轮廓坐标点集合中各个轮廓坐标点的移动幅度,并根据轮廓坐标点集合中各个轮廓坐标点,生成三角形面片的顶点;
基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画。
一方面,提供了一种动画生成装置,包括:
处理模块,用于将原始四通道图像处理为原始单通道图像,并将原始单通道图像处理为二值化单通道图像;
第一确定模块,用于确定二值化单通道图像中的目标图像的轮廓集合,轮廓集合包括至少两个轮廓;
第二确定模块,用于根据轮廓集合,确定轮廓坐标点集合、轮廓坐标点集合中各个轮廓坐标点的移动幅度,并根据轮廓坐标点集合中各个轮廓坐标点,生成三角形面片的顶点;
生成模块,用于基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画。
一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的动画生成方法。
一方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的动画生成方法。
本公开实施例提供的动画生成方法,通过根据二值化单通道图像中的目标图像的轮廓集合,确定轮廓坐标点集合、轮廓坐标点集合中各个轮廓坐标点的移动幅度,并根据轮廓坐标点集合中各个轮廓坐标点,生成三角形面片的顶点,以及基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画,提供了一种全新的将图片生成流动动画的方式,使得可以将单张静态图片绘制为具有动态效果的循环流动动画,实现了图片内容的动态效果的绘制,丰富了单张图片的展示方式,在一定程度上满足用户对单张图片的多样化展示需求。
本公开实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例的动画生成方法的流程示意图;
图2为本公开实施例的动画生成装置的基本结构示意图;
图3为本公开实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/ 或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对装置、模块或单元进行区分,并非用于限定这些装置、模块或单元一定为不同的装置、模块或单元,也并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
本公开实施例提供的动画生成方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本公开实施例的技术方案以及本公开实施例的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
本公开一个实施例提供了一种动画生成方法,该方法由计算机设备执行,该计算机设备可以是终端或者服务器。终端可以是台式设备或者移动终端。服务器可以是独立的物理服务器、物理服务器集群或者虚拟服务器。如图1所示,该方法包括:步骤S110,将原始四通道图像处理为原始单通道图像,并将原始单通道图像处理为二值化单通道图像;步骤S120,确定二值化单通道图像中的目标图像的轮廓集合,轮廓集合包括至少两个轮廓;步骤S130,根据轮廓集合,确定轮廓坐标点集合和轮廓坐标点集合中各个轮廓坐标点的移动幅度,并根据轮廓坐标点集合中各个轮廓坐标点,得到三角形面片的顶点;步骤S140,基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画。
具体地,循环流动动画是动起来的图片,在将图片生成动画的过程中,可以通过对图片中的图像(即原始图像)进行一系列处理,来将图片生成循环流动动画。其中,上述的原始图像是四通道的图像,为便于描述可以将其记作原始四通道图像,该四通道分别为R通道、G通道、B通道及A 通道,每一通道的值为0~255。在一个示例中,可以将原始四通道图像记作原始RGBA图像。
具体地,在生成循环流动动画的过程中,可以先将原始四通道图像处理为相应的原始单通道图像。在一个示例中,可以通过预定分割算法,来将原始四通道图像处理为相应的原始单通道图像。其中,在得到原始单通道图像后,可以基于上述的预定分割算法,根据需要进行相应的二值化处理,将原始单通道图像处理为二值化单通道图像,以便后续基于该二值化单通道图像,来将图片生成循环流动动画,从而为后续生成循环流动动画奠定必要基础。
具体地,在一张图片中呈现的图像可能包括物品、人物、动物及背景等等,本申请实施例不对其作限制。在得到二值化单通道图像后,可以先确定待生成循环流动动画的目标图像,该目标图像可以是图片的背景图像,也可以是图片中的物品图像,还可以是图片中的人物图像等。
具体地,在确定出待生成循环流动动画的目标图像后,在二值化单通道图像中,确定该目标图像的轮廓集合,即确定二值化单通道图像中的目标图像的轮廓集合。其中,该轮廓集合包括至少两个轮廓,该至少两个轮廓可以是目标图像的***轮廓与目标图像包括的闭合轮廓。
在一个示例中,当目标对象为叉腰站立的人物时,该至少两个轮廓可以是人体的***轮廓、胳膊内侧与腰之间形成的闭合轮廓以及胳膊外侧与腰之间形成的闭合轮廓。
具体地,在得到目标图像的轮廓集合后,可以进一步根据该确定出的轮廓集合,确定轮廓坐标点集合和轮廓坐标点集合中各个轮廓坐标点的移动幅度。在确定出轮廓坐标点集合后,可以对轮廓坐标点集合中各个轮廓坐标点进行三角化处理,得到三角形面片的顶点,即根据轮廓坐标点集合中各个轮廓坐标点,生成三角形面片的顶点。
具体地,在根据上述操作得到轮廓坐标点集合、各个轮廓坐标点的移动幅度以及三角形面片的顶点后,可以基于原始四通道图像、预定移动速度和预定移动时间,根据上述的轮廓坐标点集合、上述的各个轮廓坐标点的移动幅度及上述的三角形面片的顶点,生成目标图像的循环流动动画。
本公开实施例提供的动画生成方法,通过根据二值化单通道图像中的目标图像的轮廓集合,确定轮廓坐标点集合、轮廓坐标点集合中各个轮廓坐标点的移动幅度,并根据轮廓坐标点集合中各个轮廓坐标点,生成三角形面片的顶点,以及基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画,提供了一种全新的将图片生成流动动画的方式,使得可以将单张静态图片绘制为具有动态效果的循环流动动画,实现了图片内容的动态效果的绘制,丰富了单张图片的展示方式,在一定程度上满足用户对单张图片的多样化展示需求。
下面对本公开实施例的方法进行具体介绍:
在一种可能的实现方式中,原始单通道图像包括背景图像与目标呈现对象的图像;将原始单通道图像处理为二值化单通道图像,包括:针对背景图像,基于第一预定分割算法,确定第一预定数值范围和第二预定数值范围,并将属于第一预定数值范围的像素值确定为255,以及将属于第二预定数值范围的像素值确定为0;针对目标呈现对象的图像,基于第二预定分割算法,确定第三预定数值范围和第四预定数值范围,并将属第三预定数值范围的像素值确定为0,以及将属于第四预定数值范围的像素值确定为255。
具体地,由于在一张图片中呈现的图像可能包括物品、人物、动物及背景等等,因此,该一张图片的原始单通道图像也会包括物品、人物、动物及背景等等。其中,原始单通道图像中包括的物品、人物及动物等,为原始单通道图像中的目标呈现对象的图像,原始单通道图像中包括的背景,为原始单通道图像中的背景图像。
具体地,在将原始单通道图像处理为二值化单通道图像的过程中,可以针对背景图像和目标呈现对象的图像采用不同的二值化处理方法。下面对其进行具体介绍:
首先,针对背景图像,可以采用关于背景分割的相关分割算法(记作第一预定分割算法),来对背景图像进行二值化处理。在实际应用中,可以先根据该第一预定分割算法,确定一个合适的数值(记作第一数值),再根据该第一数值,将0~255这一值域划分为[0,第一数值]与(第一数值,255]这两个数值范围,其中,为便于描述,将[0,第一数值]这一数值范围记作第一预定数值范围,将(第一数值,255]这一数值范围记作第二预定数值范围。在确定出第一预定数值范围与第二预定数值范围后,可以通过将背景图像中属于[0,第一数值]的像素值确定为255,将背景图像中属于 (第一数值,255]的像素值确定为0,来将原始单通道图像处理为二值化单通道图像。
在一个示例中,假如第一数值为128,即第一预定数值范围为[0,128],第二预定数值范围为(128,255],且背景图像中像素点A的像素值为110,背景图像中像素点B的像素值为185,则像素点A的像素值属于[0,128],此时可以将像素点A的像素值重新确定为255,像素点B的像素值属于 (128,255],此时可以将像素点B的像素值重新确定为0。
其次,针对目标呈现对象的图像,可以采用关于目标呈现对象的相关分割算法(记作第二预定分割算法),来对目标呈现对象的图像进行二值化处理。在实际应用中,可以先根据该第二预定分割算法,确定一个合适的数值(记作第二数值),再根据该第二数值,将0~255这一值域划分为 [0,第二数值]与(第二数值,255]这两个数值范围,其中,为便于描述,将[0, 第二数值]这一数值范围记作第三预定数值范围,将(第二数值,255]这一数值范围记作第四预定数值范围。在确定出第三预定数值范围与第四预定数值范围后,可以通过将目标呈现对象的图像中属于[0,第二数值]的像素值确定为0,将目标呈现对象的图像中属于(第二数值,255]的像素值确定为 255,来将原始单通道图像处理为二值化单通道图像。
具体地,当目标呈现对象为人物时,可以采用关于人物的分割算法,其中,关于人物的分割算法又可以细分为关于头发的分割算法与关于人体的分割算法。对于人物的头发,可以采用关于头发的分割算法,对人物的头发进行二值化处理,对于人物的人体,可以采用关于人体的分割算法,对人物的人体进行二值化处理。
在人物的头发进行二值化处理的一个示例中,假如第三数值为50,即第三预定数值范围为[0,50],第四预定数值范围为(50,255],且头发图像中像素点C的像素值为30,头发图像中像素点D的像素值为115,则像素点C的像素值属于[0,50],此时可以将像素点C的像素值重新确定为0,像素点D的像素值属于(50,255],此时可以将像素点D的像素值重新确定为255。
在人物的人体进行二值化处理的一个示例中,假如第三数值为5,即第三预定数值范围为[0,5],第四预定数值范围为(5,255],且人体图像中像素点E的像素值为3,人体图像中像素点F的像素值为65,则像素点E 的像素值属于[0,5],此时可以将像素点E的像素值重新确定为0,像素点 F的像素值属于(5,255],此时可以将像素点F的像素值重新确定为255。
在一种可能的实现方式中,轮廓坐标点集合包括固定轮廓坐标点与动态轮廓坐标点。其中,根据轮廓集合,确定轮廓坐标点集合,包括:将轮廓集合中的各个轮廓坐标点确定为轮廓坐标点集合中的固定轮廓坐标点;针对轮廓集合中的每一轮廓,确定每一轮廓的外包矩形框,并依据预定大小的网格对外包矩形框进行划分,以及将划分得到的各个网格的顶点确定为轮廓坐标点集合中的动态轮廓坐标点。
具体地,轮廓坐标点集合中的轮廓坐标点可以分为固定轮廓坐标点与动态轮廓坐标点。其中,在确定出二值化单通道图像中的目标图像的轮廓集合后,可以将轮廓集合中各个轮廓的轮廓坐标点,作为轮廓坐标点集合中的固定轮廓坐标点,即轮廓坐标点集合中的固定轮廓坐标点为轮廓集合中各个轮廓的轮廓坐标点。
具体地,对于轮廓集合中的每一轮廓,无论该每一轮廓是目标图像的***轮廓,还是目标图像包括的闭合轮廓,均可以通过相应的矩形框生成函数,例如BoundingBox函数,生成该每一轮廓的外包矩形框。在生成该每一轮廓的外包矩形框之后,可以使用预定大小的网格作为步长,对根据外包矩形框形成的矩形区域,进行区域内采样,并将每个预定大小的网格的4个顶点添加到轮廓坐标点集合中,作为轮廓坐标点集合的动态轮廓坐标点;相当于,依据预定大小的网格对外包矩形框进行划分,并将划分得到的各个网格的顶点确定为轮廓坐标点集合中的动态轮廓坐标点。
其中,上述预定大小的网格为四边形网格,可以是预定大小的正方形网络,也可以是预定大小的长方形网络,还可以是预定大小的平行四边形网络,本申请实施例不对其作限制。
具体地,在确定出轮廓坐标点集合后,可以进一步确定轮廓坐标点集合中各个轮廓坐标点的移动幅度。其中,对于轮廓坐标点集合中的各个固定轮廓坐标点,可以直接将其移动幅度确定为一个预定数值(记作第一预定数值)。在实际应用中,固定轮廓坐标点通常是固定不变的,即通常不会发生移动,故可以将其移动幅度设置为0,即上述的第一预定数值为0。
具体地,对于轮廓坐标点集合中的每一个动态轮廓坐标点,可以基于其与轮廓集合中的各个轮廓之间的距离,确定每一个动态轮廓坐标点的运动幅度权重,再根据运动幅度权重确定其移动幅度。其中,在基于每一动态轮廓坐标点与轮廓集合中的各个轮廓之间的距离,确定每一动态轮廓坐标点的运动幅度权重的过程中,可以先确定每一动态轮廓坐标点与各个轮廓之间的距离,并确定各个距离中的最小距离;再检测该最小距离是否小于预定阈值,当最小距离小于预定阈值时,将每一动态轮廓坐标点的运动幅度权重确定为最小距离与预定阈值的比值;当最小距离大于或等于预定阈值时,将每一动态轮廓坐标点的运动幅度权重确定为第二预定数值。
下面以某个动态轮廓坐标点M为例,具体介绍运动幅度权重的确定过程:
首先,计算动态轮廓坐标点M到轮廓集合中的各个轮廓之间的各个距离。假如轮廓集合中包括轮廓A、轮廓B及轮廓C三个轮廓,则可以依次计算动态轮廓坐标点M到轮廓A的距离(记作M_A)、动态轮廓坐标点M到轮廓B的距离(记作M_B)及动态轮廓坐标点M到轮廓C的距离(记作M_C)。
其次,在计算出动态轮廓坐标点M到轮廓集合中的各个轮廓之间的各个距离后,确定各个距离中的最小值(即最小距离),该最小值对应的轮廓为距离动态轮廓坐标点M最近的轮廓。假如M_A大于M_B、且M_B 大于M_C,则M_C为三者中的最小值,即距离动态轮廓坐标点M最近的轮廓为轮廓C。
再次,在确定出距离动态轮廓坐标点M最近的轮廓后,判断动态轮廓坐标点M到最近轮廓的距离是否小于预定阈值。在一种情况下,如果动态轮廓坐标点M到最近轮廓的距离小于预定阈值,则可以将动态轮廓坐标点M的运动幅度权重确定为一个比值,该比值为动态轮廓坐标点M 到最近轮廓的距离与预定阈值的比值。假如距离动态轮廓坐标点M最近的轮廓为上述的轮廓C,则动态轮廓坐标点M到最近轮廓的距离为M_C,此时判断M_C是否小于预定阈值,如果小于预定阈值,则可以将动态轮廓坐标点M的运动幅度权重确定为M_C与预定阈值的比值。其中,上述的预定阈值可以是上述的预定大小的网格的尺寸,比如,可以是预定大小的网格的某一条边的长度,又比如,可以是预定大小的网格的对角线的长度,当然也可以是其它数值,本申请实施例不对其作限制。
在另一种情况下,如果动态轮廓坐标点M到最近轮廓的距离不小于预定阈值,则可以直接将动态轮廓坐标点M的运动幅度权重确定为一个预定数值(记作第二预定数值)。在实际应用中,该预定数值可以为1,即第二预定数值为1,也即动态轮廓坐标点M的运动幅度权重为1,当然该第二预定数值也可以是其实数值,本申请实施例不对其作限制。
在一种可能的实现方式中,在基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画的过程中,可以先根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,分别绘制第一图像与第二图像;再根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一透明度与第一位移,以及确定第二图像的第二透明度与第二位移;再根据第一透明度将原始四通道图像与移动第一位移后的第一图像进行混合,生成第一混合图像;再根据第二透明度将第一混合图像与移动第二位移后的第二图像进行混合,生成目标图像的循环流动动画。
具体地,在得到轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点后,可以将其作为参数,通过OpenGL(Open Graphics Library,开放图形库)绘制两个相同的图像,为便于后续描述,将该两个相同的图像分别记作第一图像与第二图像。
具体地,在绘制出第一图像与第二图像后,可以根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一透明度与第一位移,以及确定第二图像的第二透明度与第二位移。其中,在根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一透明度与第一位移的过程中,可以根据预定移动速度和预定移动时间,确定第一图像的第一透明度;根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一位移。
在一个示例中,假如预定移动速度为Speed,预定移动时间为Time,各个轮廓坐标点的移动幅度为UV,则可以根据如下公式(1)确定第一图像的第一透明度,并根据如下公式(2)确定第一图像的第一位移:
alpha1=(Speed×Time)mod2 (1)
offset1=UV×((Speed×Time)mod2-1) (2)
其中,式(1)中的alpha1为上述的第一透明度,式(2)中的offset1为上述的第一位移。
具体地,仍以上述示例为例,在根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第二图像的第二透明度与第二位移的过程中,可以先将上述的预定移动时间偏移预定时间偏移量,得到偏移后的预定移动时间;再根据预定移动速度和偏移后的预定移动时间,确定第二层图像的第二透明度,并根据预定移动速度、偏移后的预定移动时间及各个轮廓坐标点的移动幅度,确定第二层图像的第二位移。
假如预定移动速度为Speed,预定移动时间为Time,各个轮廓坐标点的移动幅度为UV,预定时间偏移量为Time/2,即向后偏移Time/2后的预定移动时间为(Time+Time/2),也偏移后的预定移动时间为(3·Time)/2,则可以根据如下公式(3)确定第二图像的第二透明度,并根据如下公式 (4)确定第二图像的第二位移:
alpha2=(Speed×(3·Time)/2)mod2 (3)
offset2=UV×((Speed×(3·Time)/2)mod2-1) (4)
其中,式(3)中的alpha2为上述的第二透明度,式(4)中的offset2为上述的第二位移。
具体地,在确定出第一图像的第一透明度与第一位移,以及确定出第二图像的第二透明度与第二位移后,可以先根据第一透明度将原始四通道图像与移动第一位移后的第一图像进行混合,生成第一混合图像;再根据第二透明度将第一混合图像与移动第二位移后的第二图像进行混合,生成目标图像的循环流动动画。
在一种可能的实现方式中,在将单通道图像处理为二值化单通道图像之前,还可以基于预定缩放比例,对原始单通道图像按照预定图像边进行缩放处理,得到第一单通道图像,第一单通道图像包括缩放处理后的原始单通道图像区域及空白区域,缩放处理后的原始单通道图像区域的长宽比例与原始单通道图像的长宽比例一致;其中,将原始单通道图像处理为二值化单通道图像,具体为将第一单通道图像处理为二值化单通道图像。
具体地,在基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画之前,还可以基于预定缩放比例,对原始四通道图像按照预定图像边进行缩放处理,得到第一四通道图像,第一四通道图像包括缩放处理后的原始四通道图像区域及空白区域,缩放处理后的原始四通道图像区域的长宽比例与原始四通道图像的长宽比例一致;其中,基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画,具体为:基于第一四通道图像、预定移动速度和预定移动时间,根据坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画。
具体地,原始单通道图像可以为长方形图像,也可以是正方形图像,当然也可以是其它形式或样式的多边形图像,本申请实施例不对其作限制。第一预定缩放比例可以是3:4、9:16等,当然也可以是其它的比值,本申请实施例不对其作限制。上述的第一预定图像边为原始单通道图像中的任一条边。
在一个示例中,以原始单通道图像为长方形图像为例,假如上述的第一预定图像边为长方形图像中的长边,第一预定缩放比例为9:16,则根据9:16对原始单通道图像按照原始图像的长边进行缩放处理,得到经缩放处理后的原始单通道图像,为便于描述,可以将缩放处理后的原始单通道图像记作第一单通道图像。换言之,将原始单通道图像按照原始单通道图像的长边缩放到9:16,得到缩放后的9:16大小的第一单通道图像。
具体地,基于上述示例,在得到缩放处理后的原始单通道图像后,还需要对其中的空白区域填充预定数值,并将在该空白区域填充预定数值后的图像确定为第一单通道图像。其中,该预定数值可以是0、1、2等数值,也可以是其它数值,本申请实施例不对其作限制。
具体地,在得到第一单通道图像后,可以将第一单通道图像处理为二值化单通道图像,并进行后续一系列处理,来生成循环流动动画,即利用第一单通道图像替换原始单通道图像,来得到新的二值化单通道图像,并基于该新的二值化单通道图像进行后续的目标图像的循环流动动画的生成处理。
同样地,原始四通道图像可以为长方形图像,也可以是正方形图像,当然也可以是其它形式或样式的多边形图像,本申请实施例不对其作限制。第一预定缩放比例可以是3:4、9:16等,当然也可以是其它的比值,本申请实施例不对其作限制。上述的第一预定图像边为原始单通道图像中的任一条边。
在一个示例中,以原始四通道图像为长方形图像为例,假如上述的第一预定图像边为长方形图像中的长边,第一预定缩放比例为9:16,则根据9:16对原始四通道图像按照原始图像的长边进行缩放处理,得到经缩放处理后的原始四通道图像,为便于描述,可以将缩放处理后的原始四通道图像记作第一四通道图像。换言之,将原始四通道图像按照原始单通道图像的长边缩放到9:16,得到缩放后的9:16大小的第一四通道图像。
同样地,在得到缩放处理后的原始四通道图像后,还需要对其中的空白区域填充预定数值,并将在该空白区域填充预定数值后的图像确定为第一四通道图像。其中,该预定数值可以是0、1、2等数值,也可以是其它数值,本申请实施例不对其作限制。其中,在得到第一四通道图像后,可以利用第一四通道图像替换原始四通道图像,来生成目标图像的循环流动动画。
下面通过具体示例对本申请实施的动画生成方法进行具体介绍,主要包括如下几个步骤:
步骤1、获取原始四通道图像I,各通道的值域均为0~255,并通过预定分割算法,将原始4通道图像处理为原始单通道图像Imask;
步骤2、对原始四通道图像I按长边缩放到9:16,并在空白区域填充预定值(0,0,0,0),得到第一四通道图像,同时,对原始单通道图像Imask,按长边缩放到9:16,并在空白区域填充预定值0,得到第一单通道图像Imask1;
步骤3、对第一单通道图像Imask1进行二值化处理,得到二值化单通道图像Imask2,其中,当第一单通道图像Imask1中包括背景图像与人物图像时,可以执行如下处理:
a)背景分割,将背景图像中属于[0,128]的像素值映射为255,将背景图像中属于(128,255]的像素值映射为0;
b)头发分割,将头发图像中属于[0,50]的像素值映射为0,将头发图像中属于(50,255]的像素值映射为255;
c)人体分割,将人体图像中属于[0,5]的像素值映射为0,将人体图像中属于(5,255]的像素值映射为255。
步骤4、在二值化单通道图像Imask2上分为两个层次查找内外轮廓,得到一组轮廓的序列Listcontour(即上述的轮廓集合),即确定二值化单通道图像中的目标图像的轮廓集合,该轮廓集合包括至少两个轮廓;
步骤5、将轮廓序列Listcontour中的轮廓坐标点Listpoint,加入固定点集PSetstatic,PSetstatic即为轮廓坐标点集合中的固定轮廓坐标点;
步骤6、获得每个轮廓的外包矩形框Rectcontour,对于外包矩形框的矩形区域,使用预定的网格大小Gridsize作为步长,进行区域内采样,即使用Gridsize对外包矩形框进行划分,并将各个网格的顶点添加到动态点集 PSetdynamic中,PSetdynamic即为轮廓坐标点集合中的动态轮廓坐标点;
步骤7、计算动态轮廓坐标点到最近轮廓的距离,当该距离小于 Gridsize时,将动态轮廓坐标点的运动幅度权重确定为Weightuv= dist/Gridsize,其中,dist为动态轮廓坐标点到最近轮廓的距离;
步骤8、根据轮廓坐标点的类型是固定轮廓坐标点,还是动态轮廓坐标点,计算每个轮廓坐标点的移动幅度,记录在ListUV中;
步骤9、对轮廓坐标点集合进行三角化处理,得到三角形面片的顶点及顶点的索引Listindice;
步骤10、根据获得的轮廓坐标点集合{PSetstatic,PSetdynamic}、UV信息ListUV和索引Listindice绘制动态效果:
a)结合预定移动速度Speed和预定移动时间Time,确定第一图像的透明度和位移,透明度计算公式为:alpha_1=(Speed×Time)mod 2,位移计算公式为:offset_1=UV×((Speed×Time)mod 2-1),其中,alpha_1为第一图像的透明度,offset_1为第一图像的位移;
b)根据透明度alpha_1将第一四通道图像与移动第一位移后的第一图像进行混合,生成第一混合图像;
c)将第二图像的绘制相对于第一图像后移半个时间周期(即Time/2),即结合预定移动速度Speed和预定移动时间(3·Time)/2,确定第二图像的透明度和位移,透明度计算公式为:alpha_2=(Speed× (3·Time)2mod 2,位移计算公式为: offset_2=UV×((Speed×(3·Time)/2)mod 2-1),其中,alpha_2 为第二图像的透明度,offset_2为第二图像的位移;
d)根据透明度alpha_2将第一混合图像与移动第二位移后的第二图像进行混合,生成循环流动动画。
图2为本公开又一实施例提供的一种动画生成装置的结构示意图,如图2所示,该装置200可以包括处理模块201、第一确定模块202、第二确定模块203及生成模块204,其中:
处理模块201,用于将原始四通道图像处理为原始单通道图像,并将原始单通道图像处理为二值化单通道图像;
第一确定模块202,用于确定二值化单通道图像中的目标图像的轮廓集合,轮廓集合包括至少两个轮廓;
第二确定模块203,用于根据轮廓集合,确定轮廓坐标点集合和轮廓坐标点集合中各个轮廓坐标点的移动幅度,并根据轮廓坐标点集合中各个轮廓坐标点,生成三角形面片的顶点;
生成模块204,用于基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画。
在一种可能的实现方式中,原始单通道图像包括背景图像与目标呈现对象的图像;
处理模块在将原始单通道图像处理为二值化单通道图像时,具体用于:
针对背景图像,基于第一预定分割算法,确定第一预定数值范围和第二预定数值范围,并将属于第一预定数值范围的像素值确定为255,以及将属于第二预定数值范围的像素值确定为0;
针对目标呈现对象的图像,基于第二预定分割算法,确定第三预定数值范围和第四预定数值范围,并将属第三预定数值范围的像素值确定为0,以及将属于第四预定数值范围的像素值确定为255。
在一种可能的实现方式中,轮廓坐标点集合包括固定轮廓坐标点与动态轮廓坐标点;
第二确定模块在根据轮廓集合,确定轮廓坐标点集合时,具体用于:
将轮廓集合中的各个轮廓坐标点确定为轮廓坐标点集合中的固定轮廓坐标点;
针对轮廓集合中的每一轮廓,确定每一轮廓的外包矩形框,并依据预定大小的网格对外包矩形框进行划分,以及将划分得到的各个网格的顶点确定为轮廓坐标点集合中的动态轮廓坐标点。
在一种可能的实现方式中,第二确定模块大根据轮廓集合,确定轮廓坐标点集合中各个轮廓坐标点的移动幅度时,具体用于:
将轮廓坐标点集合中的每一固定轮廓坐标点的移动幅度确定为第一预定数值;
基于轮廓坐标点集合中每一动态轮廓坐标点与轮廓集合中的各个轮廓之间的距离,确定每一动态轮廓坐标点的运动幅度权重,并根据每一动态轮廓坐标点的运动幅度权重,确定每一动态轮廓坐标点的移动幅度。
在一种可能的实现方式中,第二确定模块在基于轮廓坐标点集合中每一动态轮廓坐标点与轮廓集合中的各个轮廓之间的距离,确定每一动态轮廓坐标点的运动幅度权重时,具体用于:
确定每一动态轮廓坐标点与各个轮廓之间的距离,并确定各个距离中的最小距离;
当最小距离小于预定阈值时,将每一动态轮廓坐标点的运动幅度权重确定为最小距离与预定阈值的比值;
当最小距离大于或等于预定阈值时,将每一动态轮廓坐标点的运动幅度权重确定为第二预定数值。
在一种可能的实现方式中,生成模块在基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画时,具体用于:
根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,分别绘制第一图像与第二图像;
根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一透明度与第一位移,以及确定第二图像的第二透明度与第二位移;
根据第一透明度将原始四通道图像与移动第一位移后的第一图像进行混合,生成第一混合图像;
根据第二透明度将第一混合图像与移动第二位移后的第二图像进行混合,生成目标图像的循环流动动画。
在一种可能的实现方式中,生成模块在根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一透明度与第一位移,以及确定第二图像的第二透明度与第二位移时,具体用于:
根据预定移动速度和预定移动时间,确定第一图像的第一透明度;
根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一位移;
根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第二图像的第二透明度与第二位移,包括:
将预定移动时间偏移预定时间偏移量,得到偏移后的预定移动时间;
根据预定移动速度和偏移后的预定移动时间,确定第二层图像的第二透明度,并根据预定移动速度、偏移后的预定移动时间及各个轮廓坐标点的移动幅度,确定第二层图像的第二位移。
在一种可能的实现方式中,还包括第一缩放模块;
第一缩放模块,用于基于预定缩放比例,对原始单通道图像按照预定图像边进行缩放处理,得到第一单通道图像,第一单通道图像包括缩放处理后的原始单通道图像区域及空白区域,缩放处理后的原始单通道图像区域的长宽比例与原始单通道图像的长宽比例一致;
处理模块具体用于将第一单通道图像处理为二值化单通道图像。
在一种可能的实现方式中,还包括第二缩放模块;
第二缩放模块,用于基于预定缩放比例,对原始四通道图像按照预定图像边进行缩放处理,得到第一四通道图像,第一四通道图像包括缩放处理后的原始四通道图像区域及空白区域,缩放处理后的原始四通道图像区域的长宽比例与原始四通道图像的长宽比例一致;
生成模块具体用于基于第一四通道图像、预定移动速度和预定移动时间,根据坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画。
本公开实施例提供的装置,通过根据二值化单通道图像中的目标图像的轮廓集合,确定轮廓坐标点集合、轮廓坐标点集合中各个轮廓坐标点的移动幅度,并根据轮廓坐标点集合中各个轮廓坐标点,生成三角形面片的顶点,以及基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画,提供了一种全新的将图片生成流动动画的方式,使得可以将单张静态图片绘制为具有动态效果的循环流动动画,实现了图片内容的动态效果的绘制,丰富了单张图片的展示方式,在一定程度上满足用户对单张图片的多样化展示需求。
需要说明的是,本实施例为与上述的方法项实施例相对应的装置项实施例,本实施例可与上述方法项实施例互相配合实施。上述方法项实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述方法项实施例中。
下面参考图3,其示出了适于用来实现本公开实施例的电子设备300 的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端) 等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图3出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
电子设备包括存储器以及处理器,其中,这里的处理器可以称为下方所述的处理装置301,存储器包括下文中的只读存储器(ROM)302、随机访问存储器(RAM)303以及存储装置308中的至少一项,具体如下所示:
如图3所示,电子设备300可以包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储装置308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有电子设备300操作所需的各种程序和数据。处理装置301、ROM 302以及RAM 303通过总线 304彼此相连。输入/输出(I/O)接口305也连接至总线304。
通常,以下装置可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据。虽然图3 示出了具有各种装置的电子设备300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置308被安装,或者从ROM 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:将原始四通道图像处理为原始单通道图像,并将原始单通道图像处理为二值化单通道图像;接着,确定二值化单通道图像中的目标图像的轮廓集合,轮廓集合包括至少两个轮廓;接着,根据轮廓集合,确定轮廓坐标点集合和轮廓坐标点集合中各个轮廓坐标点的移动幅度,并根据轮廓坐标点集合中各个轮廓坐标点,生成三角形面片的顶点;接着,基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成循环流动动画。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取模块还可以被描述为“检测到发生预定直播事件时,获取预定直播事件对应的至少一种事件处理方式的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,提供了一种动画生成方法,包括:
将原始四通道图像处理为原始单通道图像,并将原始单通道图像处理为二值化单通道图像;
确定二值化单通道图像中的目标图像的轮廓集合,轮廓集合包括至少两个轮廓;
根据轮廓集合,确定轮廓坐标点集合和轮廓坐标点集合中各个轮廓坐标点的移动幅度,并根据轮廓坐标点集合中各个轮廓坐标点,生成三角形面片的顶点;
基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画。
在一种可能的实现方式中,原始单通道图像包括背景图像与目标呈现对象的图像;
将原始单通道图像处理为二值化单通道图像,包括:
针对背景图像,基于第一预定分割算法,确定第一预定数值范围和第二预定数值范围,并将属于第一预定数值范围的像素值确定为255,以及将属于第二预定数值范围的像素值确定为0;
针对目标呈现对象的图像,基于第二预定分割算法,确定第三预定数值范围和第四预定数值范围,并将属第三预定数值范围的像素值确定为0,以及将属于第四预定数值范围的像素值确定为255。
在一种可能的实现方式中,轮廓坐标点集合包括固定轮廓坐标点与动态轮廓坐标点;根据轮廓集合,确定轮廓坐标点集合,包括:
将轮廓集合中的各个轮廓坐标点确定为轮廓坐标点集合中的固定轮廓坐标点;
针对轮廓集合中的每一轮廓,确定每一轮廓的外包矩形框,并依据预定大小的网格对外包矩形框进行划分,以及将划分得到的各个网格的顶点确定为轮廓坐标点集合中的动态轮廓坐标点。
在一种可能的实现方式中,根据轮廓集合,确定轮廓坐标点集合中各个轮廓坐标点的移动幅度,包括:
将轮廓坐标点集合中的每一固定轮廓坐标点的移动幅度确定为第一预定数值;
基于轮廓坐标点集合中每一动态轮廓坐标点与轮廓集合中的各个轮廓之间的距离,确定每一动态轮廓坐标点的运动幅度权重,并根据每一动态轮廓坐标点的运动幅度权重,确定每一动态轮廓坐标点的移动幅度。
在一种可能的实现方式中,基于轮廓坐标点集合中每一动态轮廓坐标点与轮廓集合中的各个轮廓之间的距离,确定每一动态轮廓坐标点的运动幅度权重,包括:
确定每一动态轮廓坐标点与各个轮廓之间的距离,并确定各个距离中的最小距离;
当最小距离小于预定阈值时,将每一动态轮廓坐标点的运动幅度权重确定为最小距离与预定阈值的比值;
当最小距离大于或等于预定阈值时,将每一动态轮廓坐标点的运动幅度权重确定为第二预定数值。
在一种可能的实现方式中,基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画,包括:
根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,分别绘制第一图像与第二图像;
根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一透明度与第一位移,以及确定第二图像的第二透明度与第二位移;
根据第一透明度将原始四通道图像与移动第一位移后的第一图像进行混合,生成第一混合图像;
根据第二透明度将第一混合图像与移动第二位移后的第二图像进行混合,生成目标图像的循环流动动画。
在一种可能的实现方式中,根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一透明度与第一位移,以及确定第二图像的第二透明度与第二位移,包括:
根据预定移动速度和预定移动时间,确定第一图像的第一透明度;
根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一位移;
根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第二图像的第二透明度与第二位移,包括:
将预定移动时间偏移预定时间偏移量,得到偏移后的预定移动时间;
根据预定移动速度和偏移后的预定移动时间,确定第二层图像的第二透明度,并根据预定移动速度、偏移后的预定移动时间及各个轮廓坐标点的移动幅度,确定第二层图像的第二位移。
在一种可能的实现方式中,在将单通道图像处理为二值化单通道图像之前,还包括:
基于预定缩放比例,对原始单通道图像按照预定图像边进行缩放处理,得到第一单通道图像,第一单通道图像包括缩放处理后的原始单通道图像区域及空白区域,缩放处理后的原始单通道图像区域的长宽比例与原始单通道图像的长宽比例一致;
将原始单通道图像处理为二值化单通道图像,包括:
将第一单通道图像处理为二值化单通道图像。
在一种可能的实现方式中,在基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画之前,还包括:
基于预定缩放比例,对原始四通道图像按照预定图像边进行缩放处理,得到第一四通道图像,第一四通道图像包括缩放处理后的原始四通道图像区域及空白区域,缩放处理后的原始四通道图像区域的长宽比例与原始四通道图像的长宽比例一致;
基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画,包括:
基于第一四通道图像、预定移动速度和预定移动时间,根据坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画。
根据本公开的一个或多个实施例,提供了一种动画生成装置,包括:
处理模块,用于将原始四通道图像处理为原始单通道图像,并将原始单通道图像处理为二值化单通道图像;
第一确定模块,用于确定二值化单通道图像中的目标图像的轮廓集合,轮廓集合包括至少两个轮廓;
第二确定模块,用于根据轮廓集合,确定轮廓坐标点集合和轮廓坐标点集合中各个轮廓坐标点的移动幅度,并根据轮廓坐标点集合中各个轮廓坐标点,生成三角形面片的顶点;
生成模块,用于基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画。
在一种可能的实现方式中,原始单通道图像包括背景图像与目标呈现对象的图像;
处理模块在将原始单通道图像处理为二值化单通道图像时,具体用于:
针对背景图像,基于第一预定分割算法,确定第一预定数值范围和第二预定数值范围,并将属于第一预定数值范围的像素值确定为255,以及将属于第二预定数值范围的像素值确定为0;
针对目标呈现对象的图像,基于第二预定分割算法,确定第三预定数值范围和第四预定数值范围,并将属第三预定数值范围的像素值确定为0,以及将属于第四预定数值范围的像素值确定为255。
在一种可能的实现方式中,轮廓坐标点集合包括固定轮廓坐标点与动态轮廓坐标点;
第二确定模块在根据轮廓集合,确定轮廓坐标点集合时,具体用于:
将轮廓集合中的各个轮廓坐标点确定为轮廓坐标点集合中的固定轮廓坐标点;
针对轮廓集合中的每一轮廓,确定每一轮廓的外包矩形框,并依据预定大小的网格对外包矩形框进行划分,以及将划分得到的各个网格的顶点确定为轮廓坐标点集合中的动态轮廓坐标点。
在一种可能的实现方式中,第二确定模块大根据轮廓集合,确定轮廓坐标点集合中各个轮廓坐标点的移动幅度时,具体用于:
将轮廓坐标点集合中的每一固定轮廓坐标点的移动幅度确定为第一预定数值;
基于轮廓坐标点集合中每一动态轮廓坐标点与轮廓集合中的各个轮廓之间的距离,确定每一动态轮廓坐标点的运动幅度权重,并根据每一动态轮廓坐标点的运动幅度权重,确定每一动态轮廓坐标点的移动幅度。
在一种可能的实现方式中,第二确定模块在基于轮廓坐标点集合中每一动态轮廓坐标点与轮廓集合中的各个轮廓之间的距离,确定每一动态轮廓坐标点的运动幅度权重时,具体用于:
确定每一动态轮廓坐标点与各个轮廓之间的距离,并确定各个距离中的最小距离;
当最小距离小于预定阈值时,将每一动态轮廓坐标点的运动幅度权重确定为最小距离与预定阈值的比值;
当最小距离大于或等于预定阈值时,将每一动态轮廓坐标点的运动幅度权重确定为第二预定数值。
在一种可能的实现方式中,生成模块在基于原始四通道图像、预定移动速度和预定移动时间,根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画时,具体用于:
根据轮廓坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,分别绘制第一图像与第二图像;
根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一透明度与第一位移,以及确定第二图像的第二透明度与第二位移;
根据第一透明度将原始四通道图像与移动第一位移后的第一图像进行混合,生成第一混合图像;
根据第二透明度将第一混合图像与移动第二位移后的第二图像进行混合,生成目标图像的循环流动动画。
在一种可能的实现方式中,生成模块在根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一透明度与第一位移,以及确定第二图像的第二透明度与第二位移时,具体用于:
根据预定移动速度和预定移动时间,确定第一图像的第一透明度;
根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第一图像的第一位移;
根据预定移动速度、预定移动时间及各个轮廓坐标点的移动幅度,确定第二图像的第二透明度与第二位移,包括:
将预定移动时间偏移预定时间偏移量,得到偏移后的预定移动时间;
根据预定移动速度和偏移后的预定移动时间,确定第二层图像的第二透明度,并根据预定移动速度、偏移后的预定移动时间及各个轮廓坐标点的移动幅度,确定第二层图像的第二位移。
在一种可能的实现方式中,还包括第一缩放模块;
第一缩放模块,用于基于预定缩放比例,对原始单通道图像按照预定图像边进行缩放处理,得到第一单通道图像,第一单通道图像包括缩放处理后的原始单通道图像区域及空白区域,缩放处理后的原始单通道图像区域的长宽比例与原始单通道图像的长宽比例一致;
处理模块具体用于将第一单通道图像处理为二值化单通道图像。
在一种可能的实现方式中,还包括第二缩放模块;
第二缩放模块,用于基于预定缩放比例,对原始四通道图像按照预定图像边进行缩放处理,得到第一四通道图像,第一四通道图像包括缩放处理后的原始四通道图像区域及空白区域,缩放处理后的原始四通道图像区域的长宽比例与原始四通道图像的长宽比例一致;
生成模块具体用于基于第一四通道图像、预定移动速度和预定移动时间,根据坐标点集合、各个轮廓坐标点的移动幅度及三角形面片的顶点,生成目标图像的循环流动动画。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。