一种对视频添加云特效的方法和系统转让专利

申请号 : CN201110435716.0

文献号 : CN102523388B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王小艳

申请人 : 深圳万兴信息科技股份有限公司

摘要 :

本发明公开了一种对视频添加云特效的方法和系统,该方法包括:S10.随机生成至少两份与视频帧相同分辨率的指定属性的云效果图像,所述属性包括云密度、飘动方向、飘动速度;S20.根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,将至少两份云效果图像进行数据叠加以得到合成云效果图像,再将合成云效果图像以图像叠加的方式加到当前视频帧上。实施本发明的技术方案,在对视频添加云特效时,运算效率高,且特效效果好。

权利要求 :

1.一种对视频添加云特效的方法,其特征在于,包括:S10.随机生成至少两份与视频帧相同分辨率的指定属性的云效果图像,所述属性包括云密度、飘动方向、飘动速度;

S20.根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,将至少两份云效果图像进行数据叠加以得到合成云效果图像,再将合成云效果图像以图像叠加的方式加到当前视频帧上;

在所述步骤S10中,随机生成与视频帧相同分辨率的云效果图像的步骤包括:S11.初始化至少两份与视频帧相同分辨率的云效果图像,将z初始化为云效果图像的宽度W和图像的高度H中较大值,其中,初始化的至少两份云效果图像的每个像素点的像素值为零;

S12.从左至右逐行扫描每个云效果图像的像素点,并分别对每个像素点执行下面步骤;

S13.当前像素点的坐标为(x,y),查找以下四个像素点pixel1(x,y)、pixel2(x1,y)、pixel3(x,y1)、pixel4(x1,y1),并依次获取所述四个像素点的像素值val1、val2、val3、val4,及获取图像的宽W、图像的高H,且x1=(z+x)%W,

y1=(z+y)%H,

x2=int(x/2+x)%W,

y2=int(y/2+y)%H,

其中,%表示求余,int()表示取整;

S14.根据所获取的所述四个像素点的像素值val1、val2、val3、val4,计算以下五个像素点pixel5(x2,y2)、pixel6(x2,y)、pixel7(x,y2)、pixel8(x2,y1)、pixel9(x1,y2)的像素值val5、val6、val7、val8、val9,其中,val5=(val1+val2+val3+val4)/4+nDesity*(rand()%201-100),val6=(val1+val2)/2+nDesity*(rand()%201-100),val7=(val1+val3)/2+nDesity*(rand()%201-100),val8=(val3+val4)/2+nDesity*(rand()%201-100),val9=(val2+val4)/2+nDesity*(rand()%201-100),nDesity=z*M,

其中,rand()%201表示0~200的随机数,nDesity表示云密度,0﹤M﹤10;

S15.在所有的像素点扫描完成后,保存并更新当前云效果图像;

S16.将z值除以2,并判断更改后的z值是否小于2,若否,则重新执行步骤S12;若是,则结束。

2.根据权利要求1所述的对视频添加云特效的方法,其特征在于,所述步骤S20包括:S21.根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,分别将至少两份云效果图像按各自的飘动方向相对于当前帧移动至相应位置;

S22.将至少两份移动后的云效果图像进行数据叠加以得到合成云效果图像;

S23.将合成云效果图像以图像叠加的方式加到当前视频帧上。

3.根据权利要求1所述的对视频添加云特效的方法,其特征在于,在所述步骤S20中,所述数据叠加为求均值。

4.根据权利要求1所述的对视频添加云特效的方法,其特征在于,在所述步骤S10中,随机生成的云效果图像为三份。

5.一种对视频添加云特效的系统,其特征在于,包括:生成模块,用于随机生成至少两份与视频帧相同分辨率的指定属性的云效果图像,所述属性包括云密度、飘动方向、飘动速度;

添加模块,用于根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,将至少两份云效果图像进行数据叠加以得到合成云效果图像,再将合成云效果图像以图像叠加的方式加到当前视频帧上;

所述生成模块包括:

初始化单元,用于初始化至少两份与视频帧相同分辨率的云效果图像,将z初始化为云效果图像的宽度W和云效果图像高度H中较大值,其中,初始化的至少两份云效果图像的每个像素点的像素值为零;

扫描单元,用于从左至右逐行扫描每个云效果图像的像素点;

像素值获取单元,用于当前像素点的坐标为(x,y),查找以下四个像素点pixel1(x,y)、pixel2(x1,y)、pixel3(x,y1)、pixel4(x1,y1)并依次获取所述四个像素点的像素值val1、val2、val3、val4,及获取图像的宽W,图像的高H,且x1=(z+x)%W,

y1=(z+y)%H,

x2=int(x/2+x)%W,

y2=int(y/2+y)%H,

其中,%表示求余,int()表示取整;

像素值计算单元,用于根据所获取的所述四个像素点的像素值val1、val2、val3、val4,计算以下五个像素点pixel5(x2,y2)、pixel6(x2,y)、pixel7(x,y2)、pixel8(x2,y1)、pixel9(x1,y2)的像素值val5、val6、val7、val8、val9,其中,val5=(val1+val2+val3+val4)/4+nDesity*(rand()%201-100),val6=(val1+val2)/2+nDesity*(rand()%201-100),val7=(val1+val3)/2+nDesity*(rand()%201-100),val8=(val3+val4)/2+nDesity*(rand()%201-100),val9=(val2+val4)/2+nDesity*(rand()%201-100),nDesity=z*M,

其中,rand()%201表示0~200的随机数,nDesity表示云密度,0﹤M﹤10;

更新单元,用于在所有的像素点扫描完成后,保存并更新当前云效果图像;

判断单元,用于将z值除以2,并判断更改后的z值是否小于2,若否,则转向所述扫描单元重新执行;若是,则结束。

6.根据权利要求5所述的对视频添加云特效的系统,其特征在于,所述添加模块包括:

移动单元,用于根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,分别将至少两份云效果图像按各自的飘动方向相对于当前帧移动至相应位置;

数据叠加单元,用于将至少两份移动后的云效果图像进行数据叠加以得到合成云效果图像;

图像叠加单元,用于将合成云效果图像以图像叠加的方式加到当前视频帧上。

7.根据权利要求5所述的对视频添加云特效的系统,其特征在于,所述数据叠加为求均值。

8.根据权利要求5所述的对视频添加云特效的系统,其特征在于,随机生成的云效果图像为三份。

说明书 :

一种对视频添加云特效的方法和系统

技术领域

[0001] 本发明涉及图像处理,尤其涉及一种对视频添加云特效的方法和系统。

背景技术

[0002] 当前,根据用户需求,希望实现对视频进行云特效添加,使视频看起来更生动。然而,如何更好地实现对视频的添加云特效,提高运算效率,提升特效效果,是人们一直研究的问题。

发明内容

[0003] 本发明要解决的技术问题在于,针对现有技术的上述在对视频添加云特效时,运算效率不高、特效效果不好的缺陷,提供一种运算效率高、特效效果好的对视频添加云特效的方法。
[0004] 本发明解决其技术问题所采用的技术方案是:构造一种对视频添加云特效的方法,包括:
[0005] S10.随机生成至少两份与视频帧相同分辨率的指定属性的云效果图像,所述属性包括云密度、飘动方向、飘动速度;
[0006] S20. 根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,将至少两份云效果图像进行数据叠加以得到合成云效果图像,再将合成云效果图像以图像叠加的方式加到当前视频帧上。
[0007] 在本发明所述的对视频添加云特效的方法中,在所述步骤S10中,随机生成与视频帧相同分辨率的云效果图像的步骤包括:
[0008] S11.初始化至少两份与视频帧相同分辨率的云效果图像,将z初始化为云效果图像的宽度W和图像高度H中较大值,其中,初始化的至少两份云效果图像的每个像素点的像素值为零;
[0009] S12.从左至右逐行扫描每个云效果图像的像素点,并分别对每个像素点执行下面步骤;
[0010] S13.当前像素点的坐标为(x,y),查找以下四个像素点pixel1(x,y)、pixel2(x1,y)、pixel3(x,y1)、pixel4(x1,y1),并依次获取所述四个像素点的像素值val1、val2、val3、val4,及获取图像的宽W,图像的高H,且
[0011] x1 = (z + x) %W,
[0012] y1 = (z + y) %H,
[0013] x2 =int ( x/2 + x )%W,
[0014] y2 = int ( y/2 + y )%H,
[0015] 其中,%表示求余,int()表示取整;
[0016] S14.根据所获取的所述四个像素点的像素值val1、val2、val3、val4,计算以下五个像素点pixel5(x2,y2)、pixel6(x2,y)、pixel7(x,y2)、pixel8(x2,y1)、pixel9(x1,y2)的像素值val5、val6、val7、val8、val9,其中,
[0017] val5=(val1+val2+val3+val4)/4 + nDesity *(rand()%201-100),
[0018] val6=(val1+val2)/2 + nDesity * (rand()%201-100),
[0019] val7=(val1+val3)/2 + nDesity *(rand()%201-100),
[0020] val8=(val3+val4)/2 + nDesity *(rand()%201-100),
[0021] val9=(val2+val4)/2 + nDesity *(rand()%201-100),
[0022] nDesity = z * M
[0023] 其中,rand()%201表示0~200的随机数,nDesity表示云密度,0﹤M﹤10;
[0024] S15.在所有的像素点扫描完成后,保存并更新当前云效果图像;
[0025] S16.将z值除以2,并判断更改后的z值是否小于2,若否,则重新执行步骤S12;若是,则结束。
[0026] 在本发明所述的对视频添加云特效的方法中,所述步骤S20包括:
[0027] S21.根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,分别将至少两份云效果图像按各自的飘动方向相对于当前帧移动至相应位置;
[0028] S22. 将至少两份移动后的云效果图像进行数据叠加以得到合成云效果图像;
[0029] S23. 将合成云效果图像以图像叠加的方式加到当前视频帧上。
[0030] 在本发明所述的对视频添加云特效的方法中,在所述步骤S20中,所述数据叠加为求均值。
[0031] 在本发明所述的对视频添加云特效的方法中,在所述步骤S10中,随机生成的云效果图像为三份。
[0032] 本发明还构造一种对视频添加云特效的系统,包括:
[0033] 生成模块,用于随机生成至少两份与视频帧相同分辨率的指定属性的云效果图像,所述属性包括云密度、飘动方向、飘动速度;
[0034] 添加模块,用于根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,将至少两份云效果图像进行数据叠加以得到合成云效果图像,再将合成云效果图像以图像叠加的方式加到当前视频帧上。
[0035] 在本发明所述的对视频添加云特效的系统中,所述生成模块包括:
[0036] 初始化单元,用于初始化至少两份与视频帧相同分辨率的云效果图像,将z初始化为云效果图像的宽度W和图像高度H中较大值,其中,初始化的至少两份云效果图像的每个像素点的像素值为零;
[0037] 扫描单元,用于从左至右逐行扫描每个云效果图像的像素点;
[0038] 像素值获取单元,用于当前像素点的坐标为(x,y),查找以下四个像素点pixel1(x,y)、pixel2(x1,y)、pixel3(x,y1)、pixel4(x1,y1)并依次获取所述四个像素点的像素值val1、val2、val3、val4,及获取图像的宽W,图像的高H,且
[0039] x1 = (z + x) %W,
[0040] y1 = (z + y) %H,
[0041] x2 =int ( x/2 + x )%W,
[0042] y2 = int ( y/2 + y )%H,
[0043] 其中,%表示求余,int()表示取整;
[0044] 像素值计算单元,用于根据所获取的所述四个像素点的像素值val1、val2、val3、val4,计算以下五个像素点pixel5(x2,y2)、pixel6(x2,y)、pixel7(x,y2)、pixel8(x2,y1)、pixel9(x1,y2)的像素值val5、val6、val7、val8、val9,其中,
[0045] val5=(val1+val2+val3+val4)/4 + nDesity *(rand()%201-100),
[0046] val6=(val1+val2)/2 + nDesity * (rand()%201-100),
[0047] val7=(val1+val3)/2 + nDesity *(rand()%201-100),
[0048] val8=(val3+val4)/2 + nDesity *(rand()%201-100),
[0049] val9=(val2+val4)/2 + nDesity *(rand()%201-100),
[0050] nDesity = z * M
[0051] 其中,rand()%201表示0~200的随机数,nDesity表示云密度,0﹤M﹤10;
[0052] 更新单元,用于在所有的像素点扫描完成后,保存并更新当前云效果图像;
[0053] 判断单元,用于将z值除以2,并判断更改后的z值是否小于2,若否,则转向所述扫描单元重新执行;若是,则结束。
[0054] 在本发明所述的对视频添加云特效的系统中,所述添加模块包括:
[0055] 移动单元,用于根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,分别将至少两份云效果图像按各自的飘动方向相对于当前帧移动至相应位置;
[0056] 数据叠加单元,用于将至少两份移动后的云效果图像进行数据叠加以得到合成云效果图像;
[0057] 图像叠加单元,用于将合成云效果图像以图像叠加的方式加到当前视频帧上。
[0058] 在本发明所述的对视频添加云特效的系统中,所述数据叠加为求均值。
[0059] 在本发明所述的对视频添加云特效的系统中, 随机生成的云效果图像为三份。
[0060] 实施本发明的技术方案,在对视频添加云特效时,运算效率高,且特效效果好。

附图说明

[0061] 下面将结合附图及实施例对本发明作进一步说明,附图中:
[0062] 图1是本发明对视频添加云特效的方法实施例一的流程图;
[0063] 图2是图1的步骤S10中随机生成云效果图像优选实施例的流程图;
[0064] 图3是与当前像素点有关的九个像素点的位置关系图;
[0065] 图4是图1的步骤S20优选实施例的流程图;
[0066] 图5是本发明对视频添加云特效的系统实施例一的逻辑图;
[0067] 图6是本发明对视频添加云特效的系统实施例二的逻辑图。

具体实施方式

[0068] 如图1所示,在本发明对视频添加云特效的方法实施例一的流程图中,该方法包括:
[0069] S10.随机生成至少两份与视频帧相同分辨率的指定属性的云效果图像,所述属性包括云密度、飘动方向、飘动速度,在该步骤中,随机生成的云效果图像的份数为三份,这样更逼真,更有动感;
[0070] S20. 根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,将至少两份云效果图像进行数据叠加以得到合成云效果图像,再将合成云效果图像以图像叠加的方式加到当前视频帧上,在该步骤中,数据叠加可以是求均值,也可以是分别乘以叠加系数后再相加。
[0071] 图2是图1的步骤S10中随机生成云效果图像优选实施例的流程图,该随机生成云效果图像的步骤包括:
[0072] S11.初始化至少两份与视频帧相同分辨率的云效果图像,将z初始化为云效果图像的宽度W和图像高度H中较大值,其中,初始化的至少两份云效果图像的每个像素点的像素值为零;
[0073] S12.从左至右逐行扫描每个云效果图像的像素点,并分别对每个像素点执行下面步骤;
[0074] S13.当前像素点的坐标为(x,y),查找以下四个像素点pixel1(x,y)、pixel2(x1,y)、pixel3(x,y1)、pixel4(x1,y1),并依次获取所述四个像素点的像素值val1、val2、val3、val4,及获取图像的宽W,图像的高H,且
[0075] x1 = (z + x) %W,
[0076] y1 = (z + y) %H,
[0077] x2 =int ( x/2 + x )%W,
[0078] y2 = int ( y/2 + y )%H,
[0079] 其中,%表示求余,int()表示取整;
[0080] S14.根据所获取的所述四个像素点的像素值val1、val2、val3、val4,计算以下五个像素点pixel5(x2,y2)、pixel6(x2,y)、pixel7(x,y2)、pixel8(x2,y1)、pixel9(x1,y2)的像素值val5、val6、val7、val8、val9,其中,
[0081] val5=(val1+val2+val3+val4)/4 + nDesity *(rand()%201-100),
[0082] val6=(val1+val2)/2 + nDesity * (rand()%201-100),
[0083] val7=(val1+val3)/2 + nDesity *(rand()%201-100),
[0084] val8=(val3+val4)/2 + nDesity *(rand()%201-100),
[0085] val9=(val2+val4)/2 + nDesity *(rand()%201-100),
[0086] nDesity = z * M
[0087] 其中,rand()%201表示0~200的随机数,nDesity表示云密度,0﹤M﹤10;
[0088] S15.在所有的像素点扫描完成后,保存并更新当前云效果图像;
[0089] S16.将z值除以2,并判断更改后的z值是否小于2,若否,则重新执行步骤S12;若是,则结束。
[0090] 图4是图1的步骤S20优选实施例的流程图,该步骤包括:
[0091] S21.根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,分别将至少两份云效果图像按各自的飘动方向相对于当前帧移动至相应位置;
[0092] S22. 将至少两份移动后的云效果图像进行数据叠加以得到合成云效果图像;
[0093] S23. 将合成云效果图像以图像叠加的方式加到当前视频帧上。
[0094] 图5是本发明对视频添加云特效的系统实施例一的逻辑图,该系统包括相连的生成模块10和添加模块20。其中,生成模块10用于随机生成至少两份与视频帧相同分辨率的指定属性的云效果图像,所述属性包括云密度、飘动方向、飘动速度。添加模块20用于根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,将至少两份云效果图像进行数据叠加以得到合成云效果图像,再将合成云效果图像以图像叠加的方式加到当前视频帧上。
[0095] 图6是本发明对视频添加云特效的系统实施例二的逻辑图,该系统包括相连的生成模块10和添加模块20。其中,生成模块10包括相连的初始化单元11、扫描单元12、像素值获取单元13、像素值计算单元14、更新单元15和判断单元16。添加模块20包括相连的移动单元21、数据叠加单元22和图像叠加单元23。在该系统中,初始化单元11用于初始化至少两份与视频帧相同分辨率的云效果图像,将z初始化为云效果图像的宽度W和图像高度H中较大值,其中,初始化的至少两份云效果图像的每个像素点的像素值为零。优选地,云效果图像数据随机生成三份,这样更逼真,更有动感;扫描单元12用于从左至右逐行扫描每个云效果图像的像素点;像素值获取单元13用于当前像素点的坐标为(x, y),查找以下四个像素点pixel1(x,y)、pixel2(x1,y)、pixel3(x,y1)、pixel4(x1,y1)并依次获取所述四个像素点的像素值val1、val2、val3、val4,图像的宽为W,图像的高为H,且[0096] x1 = (z + x) %W,
[0097] y1 = (z + y) %H,
[0098] x2 =int ( x/2 + x )%W,
[0099] y2 = int ( y/2 + y )%H,
[0100] 其中,%表示求余,int()表示取整;像素值计算单元14用于根据所获取的所述四个像素点的像素值val1、val2、val3、val4,计算以下五个像素点pixel5(x2,y2)、pixel6(x2,y)、pixel7(x,y2)、pixel8(x2,y1)、pixel9(x1,y2)的像素值val5、val6、val7、val8、val9,其中,
[0101] val5=(val1+val2+val3+val4)/4 + nDesity *(rand()%201-100),
[0102] val6=(val1+val2)/2 + nDesity * (rand()%201-100),
[0103] val7=(val1+val3)/2 + nDesity *(rand()%201-100),
[0104] val8=(val3+val4)/2 + nDesity *(rand()%201-100),
[0105] val9=(val2+val4)/2 + nDesity *(rand()%201-100),
[0106] nDesity = z * M
[0107] 其中,rand()%201表示0~200的随机数,nDesity表示云密度,0﹤M﹤10;更新单元15用于在所有的像素点扫描完成后,保存并更新当前云效果图像;判断单元16用于将z值除以2,并判断更改后的z值是否小于2,若否,则转向所述扫描单元重新执行;若是,则结束。移动单元21用于根据当前帧在整个视频时长的时间系数、所述飘动方向、飘动速度,分别将至少两份云效果图像按各自的飘动方向相对于当前帧移动至相应位置;数据叠加单元22用于将至少两份移动后的云效果图像进行数据叠加以得到合成云效果图像,该数据叠加优选求均值,当然在另一个实施例中,也可分别乘以叠加系数后再相加;图像叠加单元23用于将合成云效果图像以图像叠加的方式加到当前视频帧上。
[0108] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。