一种将动态图片结合到手机视频中的方法

文档序号:7823629阅读:349来源:国知局
一种将动态图片结合到手机视频中的方法
【专利摘要】本发明公开了一种将动态图片结合到手机视频中的方法,包括以下步骤:获取视频和由若干png序列帧图片组成的动态图片,将动态图片分为可人脸追踪、可编辑文字和不能追踪人脸和编辑文字三类;对获取视频的全部帧图片进行人脸检测;选择某个动态图片,对视频的当前帧画面进行人脸判断;根据前帧画面是否有人脸和动态图片的类型进行动态图片的显示。本发明在视频完成拍摄后添加动态图片,这种后置添加动态图片方法可做到自由的调整添加动态图片到任意画面中,同时没有添加动画图片个数的限制;运用人脸追踪技术,使添加动态图片更加方便。
【专利说明】一种将动态图片结合到手机视频中的方法

【技术领域】
[0001]本发明涉及人脸追踪技术,尤其涉及一种将动态图片结合到手机视频中的方法。

【背景技术】
[0002]目前,公知的动态图片添加或结合到手机视频中的处理方案都处于拍摄视频阶段时添加动态图片。即拍摄前先添加好动态图片,然后进行拍摄,如该段拍摄结束那么动画也将结束。这种添加方式比较单一,且带有局限性,在拍摄视频的过程中不能对动态图片进行相应的操作,比如旋转和缩放动态图片,也不能自由调节动态图片显示的时长。这种方案所带来的添加动态图片和拍摄视频的乐趣性将大大降低。智能手机的崛起,高清摄像头,录制方便等因素极大地提高了用户拍摄视频的需求,而如何增加视频的乐趣性需要我们认真的思考。


【发明内容】

[0003]本发明的目的在于针对现有的添加动态图片到手机视频操作方案的不足,提供了一种将动态图片结合到手机视频中的方法,在视频完成拍摄后添加动态图片,这种后置添加动态图片方法可做到自由的调整添加动态图片到任意画面中,同时没有添加动画图片个数的限制。
[0004]本发明的目的是通过以下技术方案来实现的:一种将动态图片结合到手机视频中的方法,包括以下步骤:
(1)视频以及动态图片的获取
所述视频通过调用手机自带摄像头进行拍摄或通过访问系统相册获取;
所述动态图片由3-30张png序列帧图片组成,每个动态图片对应一 json配置表;所述json配置表包含以下信息:动态图片的序号id、名称η、时长du、类型type、显示位置坐标和文字编辑信息;其中,type=0代表可编辑文字的动态图片,type=l代表人脸追踪动态图片,type=2代表不能追踪人脸和编辑文字的动态图片;
(2)视频缩略图的获取和展现:使用AVFoundat1n框架将步骤(1)获取的视频转换成帧图片,按照帧数平分N段,每个分段节点的第一张图片作为视频的缩略图按照顺序依次排列;
(3)对步骤(1)获取的视频进行扫描:使用Corelmage的CIDetector或者使用OpenCV中的HaarCascadeClassifier,对获取视频的全部巾贞图片进行人脸检测;如果检测到人脸则保存人脸特征点及坐标信息,否则不保存数据;
(4)动态图片在视频上的添加和显示,具体包括以下子步骤:
(4.1)通过播放器显示步骤(1)获取的视频的某一帧;
(4.2)选择某个动态图片,对视频的当前帧画面进行人脸判断;
如果有人脸显示,则调用该动态图片的json配置表判断type是否为1,即是否是人脸追示动态图片; 如果type=l,则结合步骤(3)获取的视频的当前帧的人脸特征点及坐标信息、动态图片的json配置表中的显示位置坐标信息进行计算,得到动态图片中心点放置当前帧的人脸处的坐标,并显示到相应位置上;
如果有人脸显示但是type辛1,或者没有人脸显示,动态图片放置在json配置表中显示位置坐标信息中的初始位置处即可;
如果type=0,则调用json配置表中的文字编辑信息,将文字显示在动态图片上;
(5)动态图片的编辑,具体包括以下子步骤:
(5.1)调整动态图片在视频显示的起始画面:通过步骤(2)生成的缩略图选择视频的某一帧图片,动态图片将在该帧作为起点播放动态图片默认的显示时长;
(5.2)调整动态图片尺寸及旋转角度:拖拽动态图片进行旋转和缩放;
(5.3)关闭动态图片和完成动态图片的添加:关闭动态图片,则在当前画面中去掉该动态图片;完成当前动态图片的添加后可新增加另一个动态图片到视频中,操作步骤如步骤
[4];完成添加后将所有动态图片的信息按照时间点保存到数组中;
(6)动态图片和视频的合成:使用OpenGlES渲染视频帧到上下文中,循环步骤(5)中保存动态图片数据的数组,如果在视频的某一时间点添加了动态图片,则根据在该时间点的数组中的动态图片的数据,将对应的动画图片序列帧经过矩阵变换进行缩放,旋转渲染到上下文,将视频每帧进行处理,输出合成动态图片后的视频。
[0005]进一步地,所述步骤(4)中,当视频的当前巾贞画面有人脸显示,且type=l时,动态图片的显示具体为:在json配置表的显示位置坐标中设定四个变量:X轴坐标fx、Y轴坐标fy、动画宽度fw和动画高度fh ;连接视频当前帧图片中人脸的两眼作为X轴,垂直连接人脸嘴巴作为Y轴,XY轴的交叉点作为坐标原点;原点到左/右眼的距离设定为X=l,原点到嘴巴的距离设定为Y=1 ;预先将动态图片和带人脸的图片放在原型软件或PS中进行预选定位,如图2所示:将动态图片放到人脸相关的位置获取坐标,放置好动态图片后计算动态图片的中心点坐标,动态图片对应到人脸相关位置所呈现出的大小将根据原点坐标到左/右眼的距离倍数而得到,动画宽度fw为原点到左/右眼距离X的倍数,动画高度fh根据当前fw值和默认动态图片的宽高比得到。
[0006]进一步地,所述步骤(4)中,当type=0时,动态图片的显示具体为:在json配置表的文字编辑信息中设定变量:文字内容Ptext、字体tfont、文字旋转角度tangle、文字输入框的中心点坐标值(丨16代,《(^)、文字输入框的宽丨¥丨也11和高theight、文字的颜色tRGB、文字的出现时间点tbegin和结束时间点tend,按照文字编辑信息中的数据进行文字显示。
[0007]本发明的有益效果是:本发明在视频完成拍摄后添加动态图片,这种后置添加动态图片方法可做到自由的调整添加动态图片到任意画面中,添加动态图片具有可控性,不受拍摄视频的限制,同时没有添加动画图片个数的限制;运用人脸追踪技术,使添加动态图片更加方便。

【专利附图】

【附图说明】
[0008]图1是本发明的具体步骤流程图;
图2是对追踪人脸的动态图片进行预先定位的示意图。

【具体实施方式】
[0009]下面结合附图对本发明作进一步详细说明。
[0010]如图1所示,本发明一种将动态图片结合到手机视频中的方法,包括以下步骤:
(1)视频以及动态图片的获取
在本发明具体实施步骤的阐述中将采取2-8秒时长的视频为示例。调用手机自带摄像头拍摄视频,最少拍摄2秒最多拍摄8秒视频,也可以访问系统相册中的视频,如视频过长则截取8秒内视频。
[0011]所述动态图片由3-30张png序列帧图片组成连续的动画,每个动态图片对应一json配置表;所述json配置表包含以下信息:动态图片的序号id、名称η、时长du、类型type、显示位置坐标和文字编辑信息;其中,type=0代表可编辑文字的动态图片,type=l代表人脸追踪动态图片,type=2代表不能追踪人脸和编辑文字的动态图片。
[0012]Json配置表如下:
{
〃pid〃: 1,//动态图片的排序id
"fid": 1,
〃du〃: 1.1,//动态图片显示的默认时长
"type": 1,//动态图片的类型0是可编辑文字的动态图片1是追踪人脸表情的动态图片2是普通动态图片"X": 320.0,
丫: 320.0,
"w": 400.0,
〃h〃: 120.0,// X Y是动态图片放置视频中的默认位置,W和Η是动态图片的尺寸
"a": 0.0,
〃fx": 0.0,
?: -0.5,
〃fw": 4.55,
〃fh": 0.0,//fx-fh追踪人脸的动态图片需要获取到放置人脸的相应位置
n: haixiu ,
"c": 9.0,//序列帧图片的张数
"pText":"纳尼〃,//如是可编辑文字的动态图片,需要填写了 ptext至tend的数据 〃tFont〃: "SentyTEApro", //文字显示视频中的字体,可使用经过授权的网络字体 〃tAngle〃:0.0,//文字放置在动态图片的旋转角度 "tLeft〃:205.0,
〃tTop":170.0,
"twidth〃:210.0,
〃tHeight〃: 190.0,//tLeft—tHeight为文字输入的尺寸的中心点坐标和输入范围 〃tR〃:255.0,
〃tG〃:255.0,
〃tB〃:255.0,//RGB为文字的颜色
〃tBegin":0.5,
"tEnd〃: 1.45, //tBegin-tEnd 为文字的显示时间
"frameArry":[

{"time":0.0,"pic":0},

{"time":0.1,"pic":l},

{"time":0.2,"pic":2},

{"time":0.3,"pic":3},

{"time":0.4,"pic":4},

{"time":0.5,"pic":4},

{"time":0.6,"pic":4},

{"time":0.7,"pic":5},

{"time":0.8,"pic":6},

{"time":0.9,"pic":7},

rtime〃:L0,〃piC〃:8} //动态图片帧数和帧率
]
}
(2)视频缩略图的获取和展现:使用AVFoundat1n框架将步骤(1)获取的视频转换成帧图片,或者使用视频解码器从本地文件中读取图像。其中视频每秒30帧,对获取的视频图片进行处理,按照帧数平分取8段,取每个分段节点第一张图片作为视频的缩略图按照顺序依次排列。
[0013](3)对步骤(1)获取的视频进行扫描:使用Corelmage的CIDetector或者使用OpenCV中的HaarCascadeClassifier,对获取视频的全部巾贞图片进行人脸检测;如果检测到人脸则保存人脸特征点及坐标信息,否则不保存数据;
(4)动态图片在视频上的添加和显示,具体包括以下子步骤:
(4.1)通过播放器显示步骤(1)获取的视频的某一帧;
(4.2)选择某个动态图片,对视频的当前帧画面进行人脸判断;
如果有人脸显示,则调用该动态图片的json配置表判断type是否为1,即是否是人脸追示动态图片;
如果type=l,则结合步骤(3)获取的视频的当前帧的人脸特征点及坐标信息、动态图片的json配置表中的显示位置坐标信息进行计算,得到动态图片中心点放置当前帧的人脸处的坐标,并显示到相应位置上;动态图片的显示具体为:在json配置表的显示位置坐标中设定四个变量:X轴坐标fx、Y轴坐标fy、动画宽度fw和动画高度fh ;连接视频当前帧图片中人脸的两眼作为X轴,垂直连接人脸嘴巴作为Y轴,XY轴的交叉点作为坐标原点;原点到左/右眼的距离设定为X=l,原点到嘴巴的距离设定为Y=1 ;预先将动态图片和带人脸的图片放在原型软件或PS中进行预选定位:将动态图片放到人脸相关的位置获取坐标,放置好动态图片后计算动态图片的中心点坐标,动态图片对应到人脸相关位置所呈现出的大小将根据原点坐标到左/右眼的距离倍数而得到,动画宽度fw为原点到左/右眼距离X的倍数,动画高度fh根据当前fw值和默认动态图片的宽高比得到。这种做法保证了不同人脸添加不同尺寸的动态图片也将是,并且是符合该脸型的动态图片尺寸。当人脸时长大于动态图片本身的时长时,只显示动态图片默认的时长;当人脸时长小于动态图片本身的时长时,动态图片显示的时长是人脸的时长,即人脸消失,动态图片也消失不显示。
[0014]如果有人脸显示但是type Φ 1,或者没有人脸显示,动态图片放置在json配置表中显示位置坐标信息中的XY值即初始位置处即可;
如果type=0,则调用json配置表中的文字编辑信息,将文字显示在动态图片上;动态图片的显示具体为:在json配置表的文字编辑信息中设定变量:文字内容Ptext、字体tfont、文字旋转角度tangle、文字输入框的中心点坐标值(tleft, ttop)、文字输入框的宽twidth和高theight、文字的颜色tRGB、文字的出现时间点tbegin和结束时间点tend,按照文字编辑信息中的数据进行文字显示。
[0015](5)动态图片的编辑,具体包括以下子步骤:
(5.1)调整动态图片在视频显示的起始画面:通过步骤(2)生成的缩略图选择视频的某一帧图片,动态图片将在该帧作为起点播放动态图片默认的显示时长;
(5.2)调整动态图片尺寸及旋转角度:拖拽动态图片进行旋转和缩放(动态图片可以按参数中XY等比例缩放)。
[0016](5.3)关闭动态图片和完成动态图片的添加:关闭动态图片,则在当前画面中去掉该动态图片;完成当前动态图片的添加后可新增加另一个动态图片到视频中,操作步骤如步骤(4);完成添加后将所有动态图片的信息按照时间点保存到数组中;
(6)动态图片和视频的合成:使用OpenGl ES渲染视频帧到上下文中,循环步骤(5)中保存动态图片数据的数组,如果在视频的某一时间点添加了动态图片,则根据在该时间点的数组中的动态图片的数据,将对应的动画图片序列帧经过矩阵变换进行缩放,旋转渲染到上下文,将视频每帧进行处理,输出合成动态图片后的视频。
[0017]本发明的描述是为了示例和描述起见而给出的,并不是无遗漏的或者将本发明限于所公开的形式。很多算法和实现方式对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且是本领域的普通技术人员能够理解本发明从而设计适用于特定用途的带有各种修改的各种实施例。
【权利要求】
1.一种将动态图片结合到手机视频中的方法,其特征在于,包括以下步骤: (1)视频以及动态图片的获取 所述视频通过调用手机自带摄像头进行拍摄或通过访问系统相册获取; 所述动态图片由3-30张png序列帧图片组成,每个动态图片对应一 json配置表;所述json配置表包含以下信息:动态图片的序号id、名称η、时长du、类型type、显示位置坐标和文字编辑信息;其中,type=0代表可编辑文字的动态图片,type=l代表人脸追踪动态图片,type=2代表不能追踪人脸和编辑文字的动态图片; (2)视频缩略图的获取和展现:使用AVFoundat1n框架将步骤(1)获取的视频转换成帧图片,按照帧数平分N段,每个分段节点的第一张图片作为视频的缩略图按照顺序依次排列; (3)对步骤(1)获取的视频进行扫描:使用Corelmage的CIDetector或者使用OpenCV中的HaarCascadeClassifier,对获取视频的全部巾贞图片进行人脸检测;如果检测到人脸则保存人脸特征点及坐标信息,否则不保存数据; (4)动态图片在视频上的添加和显示,具体包括以下子步骤: (4-1)通过播放器显示步骤(1)获取的视频的某一帧; (4-2)选择某个动态图片,对视频的当前帧画面进行人脸判断; 如果有人脸显示,则调用该动态图片的json配置表判断type是否为1,即是否是人脸追示动态图片; 如果type=l,则结合步骤(3)获取的视频的当前帧的人脸特征点及坐标信息、动态图片的json配置表中的显示位置坐标信息进行计算,得到动态图片中心点放置当前帧的人脸处的坐标,并显示到相应位置上; 如果有人脸显示但是type辛1,或者没有人脸显示,动态图片放置在json配置表中显示位置坐标信息中的初始位置处即可; 如果type=0,则调用json配置表中的文字编辑信息,将文字显示在动态图片上; (5)动态图片的编辑,具体包括以下子步骤: (5-1)调整动态图片在视频显示的起始画面:通过步骤(2)生成的缩略图选择视频的某一帧图片,动态图片将在该帧作为起点播放动态图片默认的显示时长; (5-2)调整动态图片尺寸及旋转角度:拖拽动态图片进行旋转和缩放; (5-3)关闭动态图片和完成动态图片的添加:关闭动态图片,则在当前画面中去掉该动态图片;完成当前动态图片的添加后可新增加另一个动态图片到视频中,操作步骤如步骤(4);完成添加后将所有动态图片的信息按照时间点保存到数组中; (6)动态图片和视频的合成:使用OpenGlES渲染视频帧到上下文中,循环步骤(5)中保存动态图片数据的数组,如果在视频的某一时间点添加了动态图片,则根据在该时间点的数组中的动态图片的数据,将对应的动画图片序列帧经过矩阵变换进行缩放,旋转渲染到上下文,将视频每帧进行处理,输出合成动态图片后的视频。
2.根据权利要求1所述一种将动态图片结合到手机视频中的方法,其特征在于,所述步骤(4)中,当视频的当前巾贞画面有人脸显示,且type=l时,动态图片的显示具体为:在j son配置表的显示位置坐标中设定四个变量:X轴坐标fX、Y轴坐标fy、动画宽度fw和动画高度fh ;连接视频当前帧图片中人脸的两眼作为X轴,垂直连接人脸嘴巴作为Y轴,XY轴的交叉点作为坐标原点;原点到左/右眼的距离设定为χ=ι,原点到嘴巴的距离设定为Υ=ι ;预先将动态图片和带人脸的图片进行预选定位:将动态图片放到人脸相关的位置获取坐标,放置好动态图片后计算动态图片的中心点坐标,动态图片对应到人脸相关位置所呈现出的大小将根据原点坐标到左/右眼的距离倍数而得到,动画宽度fv为原点到左/右眼距离X的倍数,动画高度fh根据当前fw值和默认动态图片的宽高比得到。
3.根据权利要求1所述一种将动态图片结合到手机视频中的方法,其特征在于,所述步骤(4)中,当type=0时,动态图片的显示具体为:在json配置表的文字编辑信息中设定变量:文字内容ptext、字体tfont、文字旋转角度tangle、文字输入框的中心点坐标值(tleft, ttop)、文字输入框的宽twidth和高theight、文字的颜色tRGB、文字的出现时间点tbegin和结束时间点tend,按照文字编辑信息中的数据进行文字显示。
【文档编号】H04N5/262GK104469179SQ201410803625
【公开日】2015年3月25日 申请日期:2014年12月22日 优先权日:2014年12月22日
【发明者】王强宇 申请人:杭州短趣网络传媒技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1