具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例的一种图片的动态处理方法的流程示意图,本发明实施例的所述方法可应用在智能手机、平板电脑、个人电脑PC以及智能可穿戴设备等智能终端设备中对图片进行动态处理,具体的,本发明实施例的所述方法包括:
S101:识别目标图片中的移动主体以及该移动主体的主体类型,并确定该移动主体的每一个像素点在所述目标图片中的初始位置信息。
所述的目标图片可以是用户拍摄得到的图片,也可以是用户从网络中下载的图片。图片中的移动主体可以为目标图片中可能发生移动的对象,例如图片中树叶、云层、车辆、船舶以及人物、动物等,终端可以基于形状特征,可以基于色彩和纹理的分割技术自动确定出一个或者多个移动主体,如基于车辆的形状特征,可以确定出图片的一辆或者多辆汽车;或者根据用户通过线条圈选的方式,确定出一个或者多个移动主体。
在识别确定了移动主体之后,终端再根据系统自动确定的或者用户圈选的移动主体的形状特征,确定该移动主体的主体类型,当物体从图片中识别确定出来以后,用于描述主体形状的形状特征可以作为区分不同物体的依据,移动主体的形状特征可以通过轮廓特征或者区域特征表示,通过内置边界特征算法、傅里叶形状描述算法等可以提取移动主体的形状特征,再根据预先设置的形状特征与主体类型的映射关系,即可确定出各个移动主体的主体类型,例如基于方形轮廓以及底部的两个或者多个扇形轮廓的特征,可以得出该形状特征对应的主体类型为客车即车辆的类型。
主体类型用于表示该移动主体是何种物体,具体可以包括上述的树叶、云层、车辆、船舶以及人物、动物等主体类型。本发明实施例中对于不同的主体类型,可以有不同的运动方式,即对于每一个主体类型存在对应的运动模型。
在确定出目标图片中的移动主体之后,具体可以根据像素点的排列位置来确定,例如左上角作为坐标原点为(0,0),然后对于确定的移动主体各个像素点在图片中横向的个数和纵向的个数,作为该像素点的位置坐标。也可以根据图片的宽度、高度等方式确定移动主体中各像素点的坐标得到各像素点在图片中位置信息。
S102:根据选取的与所述主体类型匹配的运动模型和所述移动主体每一个像素点的初始位置信息,计算所述移动主体每一个像素点在各个时间点在所述目标图片中的中间位置信息。
针对每一个主体类型设置不同的运动模型可以使得图片的动画更丰富。并且对于不同的主体类型,其移动方式也不相同,如对于云层的主体类型来说,可以仅仅是水平的左右移动,而对于车辆来说则可以为作“S”形移动,对于树叶则可以作半圆形运动,对于船舶来说则可以为随波浪起伏的运动。
因此,针对不同的主体类型设置有不同运动函数的运动模型,每一个运动模型分别包括一个基于初始位置、移动后的位置以及移动时间的函数p1=d(p0,t)来实现,其中,p0是指移动主体中的原像素点坐标,t是时间参数,t值描述了移动主体完成一次移动的时长(即周期),p1是移动主体中的像素点移动后的坐标。例如,对于船舶的起伏运动来说,可以设置一个关于正弦函数的运动模型,即y=sin(t),根据该正弦函数得到船舶的根据时间序列的空间位置序列。因此通过时间t,和船舶在图片中的初始位置p0,再根据正弦函数公式就可以得到时间序列上相对于初始位置的不同时间的中间位置信息。从而得到模型在移动过程中某个时间上的在图片中的位置。
根据包括各自运动函数的运动模型,可以计算得到每一个像素点从其初始位置信息经过时间t后移动到最终位置坐标的过程中各个中间位置信息,其中,对于每一个时间点,会得到中间位置信息,中间位置信息组中包括了每一个像素点在该时间点下的中间位置信息。
S103:根据各中间位置信息处理所述移动主体的对应像素点得到在各个时间点的图片帧,并根据各时间点的图片帧生成动画图像。
所述S103具体可以通过像素点重绘的方式,在对应的每一个中间位置信息处重绘对应的像素点。在每次重绘对应的像素点后,会造成移动主体对应的区域的移动,因此还可以进行背景估计,并根据背景估计的结果对在目标图片中的移动主体发送移动后进行背景的填充inpainting处理,具体的,可以参考基于标准修复方法的物体清除Object Removal by Exemplar-Based Inpainting(一种关于图片中物体移除后的背景填充方法的论文)中的实现方式。
根据每一个时间点的中间位置信息,可以得到一个图片帧,根据所有的中间位置信息得到的图片帧即可组成动画图像。具体可以采用现有的GIF图像的方式将通过上述步骤得到的各时间点的图片帧进行处理,得到动画图像。
需要说明的是,对于所述目标图片中的其他内容(其他内容包括图片中除确定的移动主体外的其他图像元素)的像素点,终端并不会执行移动处理,仅在对应于每一个时间点的图片帧中,按照原始位置坐标对各个其他内容的像素点根据像素信息进行重绘即可,其中,在生成每一个时间点对应的图片帧时,先进行其他内容的像素点重绘,然后执行在所述S102中计算出的中间位置信息处重绘移动主体对应的像素点,以便于覆盖其他内容,展示清晰的图片帧。
本发明实施例能够对某一个图片中的移动主体进行识别,并根据运动模型计算坐标生成多个图片帧使该移动主体发生移动,可快速地在一张图片中实现动态显示效果,且用户操作简单,制作简单、方便。
再请参见图2,是本发明实施例的另一种图片的动态处理方法的流程示意图,本发明实施例的所述方法可应用在智能手机、平板电脑、个人电脑PC以及智能可穿戴设备等智能终端设备中对图片进行动态处理,具体的,本发明实施例的所述方法包括:
S201:确定用户在所述目标图片中选择的移动主体。
用户可以通过框选,或者通过选择线条描绘的方式,从目标图片中选择出希望其发生移动的车辆、云层、树叶等主体。用户可以选择其中的一个主体,也可以选择多个主体,对每一个选择的移动主体分别执行下述的S202至S205。
S202:根据选择的移动主体的形状特征,确定所述移动主体的主体类型。
具体可以通过对现有的车辆、云层、树叶等主体的形状进行统计学习的方式,确定出对应的形状特征,然后在所述S202中再基于该形状特征与用户选择的各移动主体进行比对,以确定用户选择的各移动主体的主体类型,主体类型即包括车辆、云层、树叶等类型。
所述S201至S202对应于上述图1的实施例中的S101。
S203:根据选取的与所述主体类型匹配的运动模型和所述移动主体每一个像素点的初始位置信息,计算所述移动主体每一个像素点在各个时间点在所述目标图片中的中间位置信息;
S204:根据各中间位置信息处理所述移动主体的对应像素点得到在各个时间点的图片帧,并根据各时间点的图片帧生成动画图像。
所述的S203和S204的实现过程请参见上述图1对应实施例中的S102和S103的描述,在此不赘述。
S205:逐帧读出所述动画图像中的各时间点的图片帧以显示所述动画图像。
在生成了动画图像之后,终端可以逐帧读出所述动画图像中的各时间点的图片帧,向用户显示对应的动画。
本发明实施例能够根据用户的选择,对某一个图片中的移动主体进行确认、识别,并根据运动模型计算坐标生成多个图片帧使该移动主体发生移动,可快速地在一张图片中实现动态显示效果,且用户操作简单,制作简单、方便。
再请参见图3,是本发明实施例的再一种图片的动态处理方法的流程示意图,本发明实施例的所述方法可应用在智能手机、平板电脑、个人电脑PC以及智能可穿戴设备等智能终端设备中对图片进行动态处理,具体的,本发明实施例的所述方法包括:
S301:基于色彩和/或纹理确定所述目标图片中的至少一个初始移动主体;
S302:根据用户对所述至少一个初始移动主体的标定操作,确定至少一个移动主体;
终端根据图片中各区域中的色彩和/或纹理等因素,可以粗略地估计出一个或者多个目标主体即初始移动主体,并显示对应的框选线段,然后由用户通过鼠标或者键盘等手动修改进行标定操作,最终确定出至少一个移动主体。
S303:根据确定的至少一个移动主体的形状特征,确定所述移动主体的主体类型。
具体可以通过对现有的车辆、云层、树叶等主体的形状进行统计学习的方式,确定出对应的形状特征,然后在所述S202中再基于该形状特征与用户选择的各移动主体进行比对,以确定用户选择的各移动主体的主体类型,主体类型即包括车辆、云层、树叶等类型。
所述S301至S303对应于上述图1的实施例中的S101。
S304:根据选取的与所述主体类型匹配的运动模型和所述移动主体每一个像素点的初始位置信息,计算所述移动主体每一个像素点在各个时间点在所述目标图片中的中间位置信息;
S305:根据各中间位置信息处理所述移动主体的对应像素点得到在各个时间点的图片帧,并根据各时间点的图片帧生成动画图像。
所述的S304和S305的实现过程请参见上述图1对应实施例中的S102和S103的描述,在此不赘述。
另外,在本发明实施例中,所述S305具体可以包括:获取所述移动主体的边沿像素点,确定所述目标图片上与该边沿像素点相邻的背景像素点的像素信息,所述像素信息包括像素的色彩信息;在各中间位置信息处重绘所述移动主体的对应像素点以移动所述移动主体;根据确定的背景像素点的像素信息,对移动所述移动主体后的所述目标图片进行背景填充处理。
即在对像素点进行重绘后,由于移动主体所在的区域发生了移动,此时需要根据该移动主体附近的背景像素点对移动后产生的空白区域进行背景填充处理。
S306:逐帧读出所述动画图像中的各时间点的图片帧以显示所述动画图像。
在生成了动画图像之后,终端可以逐帧读出所述动画图像中的各时间点的图片帧,向用户显示对应的动画。
本发明实施例能够根据自动识别以及根据用户的标定,对某一个图片中的移动主体进行确认、识别,并根据运动模型计算坐标生成多个图片帧使该移动主体发生移动,可快速地在一张图片中实现动态显示效果,且用户操作简单,制作简单、方便。
具体的,再请参见图4,是本发明实施例的一种计算中间位置信息的方法的流程示意图,本发明实施例的所述方法可对应于上述图1至图3对应实施例中的根据选取的与所述主体类型匹配的运动模型和所述移动主体每一个像素点的初始位置信息,计算所述移动主体每一个像素点在各个时间点在所述目标图片中的中间位置信息的步骤,具体的,所述方法包括:
S401:在预置的主体类型与运动模型的关系数据库中选取与所述主体类型匹配的运动模型。
预置的主体类型与运动模型的关系数据库中具体可以设置一个映射表,该映射表中记录了某些移动主体的主体类型以及与主体类型一一对应的运动模型,具体如下表1所示:
表1
类型 |
运动模型 |
树叶 |
p1=d1(p0,t) |
车辆 |
p1=d2(p0,t) |
云层 |
p1=d3(p0,t) |
…… |
…… |
通过预置该映射表,可以在任何时刻为各种主体类型的移动主体选择运动模型,以便于有针对性地进行图片的动态处理。
S402:获取用户指定的移动方向。
所述S402可以先向用户提供一个交互界面UI,然后获取用户在该交互界面UI上指定的移动方向。需要说明的是,该移动方向为指定的移动主体的总移动方向,在该移动方向移动的过程中,移动的路线是根据运动模型确定。
S403:根据所述匹配的运动模型和所述移动主体每一个像素点的初始位置信息,计算所述移动主体每一个像素点在所述指定的移动方向上,各个时间点在所述目标图片中的中间位置信息。
所述S403具体可以根据初试坐标和运动模型计算第一个时刻到来时的中间位置信息,然后再根据中间位置信息计算下一个时刻到来时的中间位置信息,以此类推可得到各时间点在所述目标图片中的中间位置信息。
本发明实施例根据预置的主体类型与运动模型的关系数据库以及用户选择的移动方向,可以针对用户对图片的局部动态需求,快速地计算出移动过程中各个中间位置信息,方便后续完成图片局部动态的实现。
下面对本发明实施例的一种图片的动态处理装置进行详细描述。
请参见图5,是本发明实施例的一种图片的动态处理装置的结构示意图,本发明实施例的所述装置可设置在智能手机、平板电脑、个人电脑PC以及智能可穿戴设备等智能终端设备中对图片进行动态处理,具体的,本发明实施例的所述装置包括:
识别模块1,用于识别目标图片中的移动主体以及该移动主体的主体类型,并确定该移动主体的每一个像素点在所述目标图片中的初始位置信息;
计算模块2,用于根据选取的与所述主体类型匹配的运动模型和所述移动主体每一个像素点的初始位置信息,计算所述移动主体每一个像素点在各个时间点在所述目标图片中的中间位置信息;
生成模块3,用于根据各中间位置信息处理所述移动主体的对应像素点得到在各个时间点的图片帧,并根据各时间点的图片帧生成动画图像。
所述的目标图片可以是用户拍摄得到的图片,也可以是用户从网络中下载的图片。图片中的移动主体可以为目标图片中可能发生移动的对象,具体可以基于色彩和纹理的分割技术自动确定出一个或者多个移动主体,也可以通过人工框选圈定的方式确定出一个或者多个移动主体,例如图片中树叶、云层、车辆以及人物、动物等,所述识别模块1可以基于形状特征,自动确定出一个或者多个移动主体,如基于车辆的形状特征,可以确定出图片的一辆或者多辆汽车;或者根据用户通过线条圈选的方式,确定出一个或者多个移动主体。
在识别确定了移动主体之后,所述识别模块1再根据自动确定的或者人工圈选的移动主体的形状特征,确定该移动主体的主体类型,当物体从图片中识别确定出来以后,用于描述主体形状的形状特征可以作为区分不同物体的依据,移动主体的形状特征可以通过轮廓特征或者区域特征表示,通过内置边界特征算法、傅里叶形状描述算法等可以提取移动主体的形状特征,再根据预先设置的形状特征与主体类型的映射关系,即可确定出各个移动主体的主体类型,例如基于方形轮廓以及底部的两个或者多个扇形轮廓的特征,可以得出该形状特征对应的主体类型为客车即车辆车的类型。
主体类型用于表示该移动主体是何种物体,具体可以包括上述的树叶、云层、车辆以及人物、动物等主体类型。本发明实施例中对于不同的主体类型,可以有不同的运动方式,即对于每一个主体类型存在对应的运动模型。
在确定出目标图片中的移动主体之后,所述识别模块1具体可以根据二维数组或者图片的宽度、高度的方式确定移动主体中各像素点的坐标。
针对每一个主体类型设置不同的运动模型可以使得图片的动画更丰富。并且对于不同的主体类型,其移动方式也不相同,如对于云层的主体类型来说,可以仅仅是水平的左右移动,而对于车辆来说则可以为作“S”形移动,对于树叶则可以作半圆形运动。
因此,针对不同的主体类型设置有不同运动函数的运动模型,每一个运动模型分别包括一个基于初始位置、移动后的位置以及移动时间的函数p1=d(p0,t)来实现,其中,p0是指移动主体中的原像素点坐标,t是时间参数,t值描述了移动主体完成一次移动的时长(即周期),p1是移动主体中的像素点移动后的坐标。所述计算模块2根据p1=d(p0,t),可以计算得到每一个像素点从其初始位置信息经过时间t后移动到最终位置坐标的过程中各个中间位置信息,其中,对于每一个时间点,会得到中间位置信息,中间位置信息中包括了每一个像素点在该时间点下的中间位置信息。
所述生成模块3具体可以通过像素点重绘的方式,在对应的每一个中间位置信息处重绘对应的像素点。在每次重绘对应的像素点后,会造成移动主体对应的区域发生移动,因此还可以进行背景估计,并根据背景估计的结果进行背景填充inpainting处理。
所述生成模块3根据每一个时间点的中间位置信息组,可以得到一个图片帧,根据所有的中间位置信息组得到的图片帧即可组成动画图像。所述生成模块3具体可以采用现有的GIF图像的方式将通过上述步骤得到的各时间点的图片帧进行处理,得到动画图像。
本发明实施例能够对某一个图片中的移动主体进行识别,并根据运动模型计算坐标生成多个图片帧使该移动主体发生移动,可快速地在一张图片中实现动态显示效果,且用户操作简单,制作简单、方便。
再请参见图6,是本发明实施例的另一种图片的动态处理装置的结构示意图,本发明实施例的所述装置包括上述图5对应实施例中的识别模块1、计算模块2以及生成模块3,在本发明实施例中,所述装置还包括:
显示模块4,用于逐帧读出所述动画图像中的各时间点的图片帧以显示所述动画图像。
在生成了动画图像之后,所述显示模块4可以逐帧读出所述动画图像中的各时间点的图片帧,向用户显示对应的动画。
进一步可选地,在本发明实施例中,所述计算模块2具体可以包括:
选取单元21,用于在预置的主体类型与运动模型的关系数据库中选取与所述主体类型匹配的运动模型;
获取单元22,用于获取用户指定的移动方向;
计算单元23,用于根据所述匹配的运动模型和所述移动主体每一个像素点的初始位置信息,计算所述移动主体每一个像素点在所述指定的移动方向上,各个时间点在所述目标图片中的中间位置信息。
预置的主体类型与运动模型的关系数据库中具体可以设置一个映射表,该映射表中记录了某些移动主体的主体类型以及与主体类型一一对应的运动模型,具体的可参见上述表1所述。通过预置该映射表,可以在任何时刻为各种主体类型的移动主体选择运动模型,以便于有针对性地进行图片的动态处理。
所述获取单元22可以先向用户提供一个交互界面UI,然后获取用户在该交互界面UI上指定的移动方向,用户可以指定向左、向右等方向,以便于基于该方向和运动模型,来完成移动主体的移动。需要说明的是,该移动方向为指定的移动主体的总移动方向,在该移动方向移动的过程中,移动的路线是根据运动模型确定。
所述计算单元23具体可以根据初试坐标和运动模型计算第一个时刻到来时的中间位置信息,然后再根据中间位置信息计算下一个时刻到来时的中间位置信息,以此类推可得到各时间点在所述目标图片中的中间位置信息。
进一步可选地,在本发明实施例中,所述生成模块3具体可以包括:
确定单元31,用于获取所述移动主体的边沿像素点,确定所述目标图片上与该边沿像素点相邻的背景像素点的像素信息,所述像素信息包括像素的色彩信息;
重绘单元32,用于在各中间位置信息处重绘所述移动主体的对应像素点以移动所述移动主体;
填充单元33,用于根据确定的背景像素点的像素信息,对移动所述移动主体后的所述目标图片进行背景填充处理。
即在对像素点进行重绘后,由于移动主体所在的区域发生了移动,此时可以通过所述填充单元33额外地根据该移动主体附近的背景像素点对移动后的空白区域进行背景填充处理。
进一步可选地,在本发明实施例中,所述识别模块1具体可以包括:
选择确定单元11,用于确定用户在所述目标图片中选择的移动主体;
第一类型确定单元12,用于根据选择的移动主体的形状特征,确定所述移动主体的主体类型。
具体可以通过对现有的车辆、云层、树叶等主体的形状进行统计学习的方式,确定出对应的形状特征,然后由所述第一类型确定单元12基于该形状特征与用户选择的各移动主体进行比对,以确定用户选择的各移动主体的主体类型,主体类型即包括车辆、云层、树叶等类型。当物体从图片中识别确定出来以后,用于描述主体形状的形状特征可以作为区分不同物体的依据,移动主体的形状特征可以通过轮廓特征或者区域特征表示,通过内置边界特征算法、傅里叶形状描述算法等可以提取移动主体的形状特征,再根据预先设置的形状特征与主体类型的映射关系,即可确定出各个移动主体的主体类型,例如基于方形轮廓以及底部的两个或者多个扇形轮廓的特征,可以得出该形状特征对应的主体类型为客车即车辆车的类型
或者,进一步的,所述识别模块1具体可以包括:
初始确定单元13,用于基于色彩和/或纹理确定所述目标图片中的至少一个初始移动主体;
操作确定单元14,用于根据用户对所述至少一个初始移动主体的标定操作,确定至少一个移动主体;
第二类型确定单元15,用于根据确定的至少一个移动主体的形状特征,确定所述移动主体的主体类型。
所述识别模块1可以同时包括上述的选择确定单元11、第一类型确定单元12以及初始确定单元13、操作确定单元14、第二类型确定单元15,以便于根据用户的实际需求来完成移动主体以及主体类型的识别。
终端根据图片中各区域中的色彩和/或纹理等因素,可以粗略地估计出一个或者多个目标主体即初始移动主体,并显示对应的框选线段,用户可以通过鼠标或者键盘等手动修改进行标定操作,确定出至少一个移动主体。
具体可以通过对现有的车辆、云层、树叶等主体的形状进行统计学习的方式,确定出对应的形状特征,然后由所述第二类型确定单元15基于该形状特征与用户选择的各移动主体进行比对,以确定用户选择的各移动主体的主体类型,主体类型即包括车辆、云层、树叶等类型。
本发明实施例能够根据自动识别以及根据用户的标定,对某一个图片中的移动主体进行确认、识别,并根据运动模型计算坐标生成多个图片帧使该移动主体发生移动,可快速地在一张图片中实现动态显示效果,且用户操作简单,制作简单、方便。并且,据预置的主体类型与运动模型的关系数据库以及用户选择的移动方向,可以针对用户对图片的局部动态需求,快速地计算出移动过程中各个中间位置信息,方便后续完成图片局部动态的实现。
再请参见图7,是本发明实施例的一种终端设备的结构示意图,本发明实施例的所述终端设备可以为智能手机、平板电脑、个人电脑以及智能可穿戴设备,具体的所述终端设备包括处理器100和显示器200;
所述处理器100,用于识别目标图片中的移动主体以及该移动主体的主体类型,并确定该移动主体的每一个像素点在所述目标图片中的初始位置信息;根据选取的与所述主体类型匹配的运动模型和所述移动主体每一个像素点的初始位置信息,计算所述移动主体每一个像素点在各个时间点在所述目标图片中的中间位置信息;根据各中间位置信息处理所述移动主体的对应像素点得到在各个时间点的图片帧,并根据各时间点的图片帧生成动画图像;
所述显示器200,用于逐帧读出所述动画图像中的各时间点的图片帧以显示所述动画图像。
具体的,所述处理器100的具体实现过程参见上述的图1至图6对应实施例中的描述,在此不赘述。
本发明实施例能够对某一个图片中的移动主体进行识别,并根据运动模型计算坐标生成多个图片帧使该移动主体发生移动,可快速地在一张图片中实现动态显示效果,且用户操作简单,制作简单、方便。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程,用以根据对某一个图片中的移动主体进行识别,并根据运动模型计算坐标生成多个图片帧使图片中的该移动主体发生移动。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。